Hirdetés

Új hozzászólás Aktív témák

  • cousin333

    addikt

    válasz F1DO #3255 üzenetére

    Továbbra is úgy gondolom, hogy neked felesleges a sorszámokkal foglalkozni, elvégre a START sztring és a STOP sztring nincs átfedésben. Egyszerűen végig kell menni a fájlon, és kiírogatni a megfelelő sorokat, majd nyitni egy új fájlt, oda is kiírni... stb.

    Tegyük fel, hogy van a szoveg.txt fájlod, amit fel akarsz dolgozni:

    blahbla
    blahbla2
    START
    Első sor
    Adat: valami
    még egy sor
    STOP
    blah
    START
    Új fájlba
    újabb sor
    Adat: minden
    STOP
    semmi

    Ekkor csak egyszer végig kell menni a fájlon és keresni a megfelelő sorokat. A nehézséget csak az jelenti, ha a START és a STOP között van a sor, ami a fájlnevet adja, így azt nem tudhatjuk előre. Ilyenkor azt csinálnám, hogy univerzális fájlnevet adok, és a végén átnevezem:

    import os

    start_string = 'START'
    stop_string = 'STOP'
    file_string = 'Adat:'

    filename = ''
    output_file = None

    with open('szoveg.txt', 'r') as input_file:
        for line in input_file:
            if line.startswith(start_string):
                output_file = open('output.txt', 'w')
            elif line.startswith(stop_string):
                output_file.close()
                os.rename('output.txt', filename + '.txt')
            elif line.startswith(file_string):
                filename = line[6:]    # Vagy ahogy ki kell találni a fájlnevet
            else:
                output_file.write(line)

Új hozzászólás Aktív témák