我更喜欢使用shutil.copyfileobj。您可以轻松地将其与 glob.glob 结合使用,以通过模式连接一堆文件
>>> import shutil
>>> infiles = ["test1.txt", "test2.txt"]
>>> with open("test.out","wb") as fout:
for fname in infiles:
with open(fname, "rb") as fin:
shutil.copyfileobj(fin, fout)
与 glob.glob 结合
>>> import glob
>>> with open("test.out","wb") as fout:
for fname in glob.glob("test*.txt"):
with open(fname, "rb") as fin:
shutil.copyfileobj(fin, fout)
但除此之外,如果您在可以使用 posix 实用程序的系统中,更喜欢使用它
D:\temp>cat test1.txt test2.txt > test.out
如果您使用的是 Windows,则可以从命令提示符发出以下命令。
D:\temp>copy/Y test1.txt+test2.txt test.out
test1.txt
test2.txt
1 file(s) copied.
注意
基于您的最新更新
是的,它的行数相同,我想将一个文件的每一行与另一个文件连接起来
with open("test.out","wb") as fout:
fout.writelines('\n'.join(''.join(map(str.strip, e))
for e in zip(*(open(fname) for fname in infiles))))
在posix系统上,你可以做
paste test1.txt test2.txt