【发布时间】:2012-11-16 19:00:21
【问题描述】:
我有一个包含 20 个文件名的列表,例如 ['file1.txt', 'file2.txt', ...]。我想编写一个 Python 脚本来将这些文件连接成一个新文件。我可以通过f = open(...) 打开每个文件,通过调用f.readline() 逐行读取,然后将每一行写入新文件。这对我来说似乎不是很“优雅”,尤其是我必须逐行读/写的部分。
有没有更“优雅”的方式在 Python 中做到这一点?
【问题讨论】:
-
它不是 python,但在 shell 脚本中你可以做类似
cat file1.txt file2.txt file3.txt ... > output.txt的事情。在 python 中,如果你不喜欢readline(),总是有readlines()或简单的read()。 -
@jedwards 只需使用
subprocess模块运行cat file1.txt file2.txt file3.txt命令就可以了。但我不确定cat是否适用于 Windows。 -
请注意,您描述的方式是读取文件的糟糕方式。使用
with语句确保您的文件正确关闭,并遍历文件以获取行,而不是使用f.readline()。 -
@jedwards cat 在文本文件为 unicode 时不起作用。
标签: python file-io concatenation