Beim Umgang mit mehreren Textdateien besteht häufig die Notwendigkeit, diese zu einer einzigen Datei zu verketten. Auch wenn die Verwendung des zeilenweisen Ansatzes mit den Methoden open(), readline() und write() unkompliziert erscheinen mag, mangelt es ihm an Eleganz.
Python bietet ausgefeiltere Methoden für diese Aufgabe. Betrachten Sie die folgenden Ansätze:
Für große Dateien:
filenames = ['file1.txt', 'file2.txt', ...] with open('path/to/output/file', 'w') as outfile: for fname in filenames: with open(fname) as infile: for line in infile: outfile.write(line)
Diese Methode durchläuft jede Datei und liest und schreibt Zeilen nacheinander. Es ist effizient für große Dateien.
Für kleine Dateien:
filenames = ['file1.txt', 'file2.txt', ...] with open('path/to/output/file', 'w') as outfile: for fname in filenames: with open(fname) as infile: outfile.write(infile.read())
Bei kleineren Dateien liest dieser Ansatz den gesamten Inhalt jeder Datei auf einmal und reduziert so die Anzahl von Dateioperationen.
Eine alternative Verwendung itertools:
filenames = ['file1.txt', 'file2.txt', ...] with open('path/to/output/file', 'w') as outfile: for line in itertools.chain.from_iterable(itertools.imap(open, filnames)): outfile.write(line)
Diese Methode verwendet das itertools-Modul, um Zeilen über mehrere Dateien hinweg zu durchlaufen, als wären sie eine einzelne Liste. Es ist weniger speichereffizient, kann aber als faszinierender Ansatz angesehen werden.
Durch den Einsatz dieser eleganteren Techniken können Sie Textdateien in Python einfacher und effizienter verketten und so Szenarios mit großen und kleinen Dateien abdecken.
Das obige ist der detaillierte Inhalt vonWie kann ich Textdateien in Python elegant verketten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!