处理多个文本文件时,经常需要将它们连接到单个文件中。虽然使用 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中文网其他相关文章!