nur bestimmten abschnitt eines textes einlesen

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.
Antworten
blutigeranfaenger
User
Beiträge: 63
Registriert: Dienstag 4. März 2014, 12:04

Hallo zusammen,
ich habe folgende Frage:
ich möchte einen Text mit Python einlesen, einzelne Strings verändern und wieder in einer neuen Datei speichern.
Das funktioniert soweit ganz gut:

Code: Alles auswählen

#!/usr/bin/env python3
daten = open('text.txt','r')
output = open('text_geaendert.txt','w')
for line in daten:
		output.write(line.replace("Hund", "Fisch"))
daten.close()
Jetzt möchte ich aber nicht den ganzen Text einlesen, sondern nur einen Ausschnitt, z.B. von Zeile 2-3. Wie kann ich das bewerkstelligen?
BlackJack

@blutigeranfaenger: `itertools.islice()` kann da nützlich sein. Ungetestet:

Code: Alles auswählen

from itertools import islice


def main():
    with open('text.txt', 'r') as daten:
        with open('text_geaendert.txt', 'w') as output:
            for line in islice(daten, 2, 4):
                output.write(line.replace('Hund', 'Fisch'))


if __name__ == '__main__':
    main()
In Deinem Quelltext wurde `output` nicht geschlossen!
blutigeranfaenger
User
Beiträge: 63
Registriert: Dienstag 4. März 2014, 12:04

Hallo BlackJack,
der Code hat funktioniert! Allerdings etwas anders, als ich es erwartet hatte.
Jetzt werden Zeile 3 und Zeile 5 in die neue Datei geschriebn.
Ich würde aber gerne Zeile 3-5 in die neue Datei schreiben, also einen Bereich des Ausgangsdokuments.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@blutigeranfaenger: ich weiß jetzt nicht, was Du geändert hast, aber in BlackJacks Code wird ein ganzer Bereich geschrieben.
blutigeranfaenger
User
Beiträge: 63
Registriert: Dienstag 4. März 2014, 12:04

Oh ja, sorry, Du hast recht, es funktioniert wie gewünscht! Danke!
Antworten