Seite 1 von 1

nur bestimmten abschnitt eines textes einlesen

Verfasst: Samstag 15. März 2014, 17:01
von blutigeranfaenger
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?

Re: nur bestimmten abschnitt eines textes einlesen

Verfasst: Samstag 15. März 2014, 17:07
von 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!

Re: nur bestimmten abschnitt eines textes einlesen

Verfasst: Samstag 15. März 2014, 17:37
von blutigeranfaenger
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.

Re: nur bestimmten abschnitt eines textes einlesen

Verfasst: Samstag 15. März 2014, 17:41
von Sirius3
@blutigeranfaenger: ich weiß jetzt nicht, was Du geändert hast, aber in BlackJacks Code wird ein ganzer Bereich geschrieben.

Re: nur bestimmten abschnitt eines textes einlesen

Verfasst: Samstag 15. März 2014, 17:49
von blutigeranfaenger
Oh ja, sorry, Du hast recht, es funktioniert wie gewünscht! Danke!