處理多個文字檔案時,經常需要將它們連接到單一檔案中。雖然使用 open()、readline() 和 write() 方法的逐行方法看起來很簡單,但缺乏優雅性。
Python 為此任務提供了更複雜的方法。考慮以下方法:
對於大文件:
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)
此方法迭代每個文件,順序讀取和寫入行。對於大文件非常有效。
對於小檔案:
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())
對於較小的文件,此方法會一次讀取每個檔案的全部內容,從而減少數量檔案操作。
另一種使用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)
此方法使用 itertools 模組來迭代多個檔案中的行,就好像它們是單一列表一樣。它的記憶體效率較低,但可以被認為是一種有趣的方法。
透過採用這些更優雅的技術,您可以更輕鬆、更有效率地在 Python 中連接文字文件,滿足涉及大檔案和小檔案的場景。
以上是如何在 Python 中優雅地連接文字檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!