Zeilen anhängen bis Ende gefunden wird

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
BlackJack

@madthomas: An der Klasse ist "falsch", dass mir nicht so ganz klar ist warum Du eine Klasse brauchst!?

Und funktionieren tut das ganze nicht, weil `in_block` in der Methode lokal ist und nach Abarbeitung der Methode verschwindet. Das ganze an dieser Stelle in auseinander zu nehmen und einen Teil in eine Funktion zu stecken ist etwas ungünstig. Wenn Du die Funktion mit den Zeilen von den Dateien entkoppeln willst, würde ich eine Generatorfunktion vorschlagen.

Code: Alles auswählen

def process_lines(lines):
    in_block = False
    for line in lines:
        if 'Anfang' in line and 'Zusatz' in line:
            in_block = True
        if 'Ende' in line:
            in_block = False
        if in_block:
            line = line.strip() + ' '
        yield line


def main():
    in_file = open('test.txt', 'r')
    out_file = open('test2.txt', 'w')
    
    out_file.writelines(process_lines(in_file))
    
    in_file.close()
    out_file.close()
``return`` ist übrigens keine Funktion, die Klammern sind etwas verwirrend.
madthomas
User
Beiträge: 35
Registriert: Dienstag 7. August 2007, 10:32
Wohnort: WND
Kontaktdaten:

wollte halt wissen ob das mit der Klasse klappt aber ist nicht so wichtig.
Danke für eure Hilfe
madthomas
User
Beiträge: 35
Registriert: Dienstag 7. August 2007, 10:32
Wohnort: WND
Kontaktdaten:

Leider hab ich jetzt noch ein weiteres Problem, die Zeilen stehen jetzt in einem String drin und jetzt will ich sie formatieren

z.B.
Anfang + A1 + A2 + B1 + B2 + C1 + C2 + D1 + D2Ende

und jetzt hätte ich es halt so aufgrund der leserlichkeit

Anfang + A1 + A2
............+ B1 + B2
............+ C1 + C2
............+ D1 + D2 Ende

Punkte dienen als Leerzeichenersatz
Antworten