我有一个包含20个文件名的列表,比如['file1.txt', 'file2.txt', ...]
。我想写一个Python脚本,将这些文件连接成一个新文件。我可以通过f = open(...)
打开每个文件,通过调用f.readline()
逐行读取,并将每一行写入新文件。这对我来说似乎不是很“优雅”,特别是我必须逐行读/写的部分。
在Python中有没有更“优雅”的方式来实现这一点?
发布于 2014-11-22 20:35:15
它会自动逐块读取输入文件,这会更高效地读取输入文件,即使某些输入文件太大而无法放入内存,它也会正常工作:
import shutil
with open('output_file.txt','wb') as wfd:
for f in ['seg1.txt','seg2.txt','seg3.txt']:
with open(f,'rb') as fd:
shutil.copyfileobj(fd, wfd)
发布于 2014-06-03 09:39:24
我不知道是否优雅,但这是可行的:
import glob
import os
for f in glob.glob("file*.txt"):
os.system("cat "+f+" >> OutFile.txt")
发布于 2012-11-29 04:00:34
UNIX命令有什么问题?(假设您不是在Windows上工作):
ls | xargs cat | tee output.txt
可以完成这项工作(如果需要,可以通过子进程从python中调用它)
https://stackoverflow.com/questions/13613336
复制相似问题