gpt4 book ai didi

python - 如何用 python "join"两个文本文件?

转载 作者:太空宇宙 更新时间:2023-11-03 12:39:22 26 4
gpt4 key购买 nike

我有两个这样的 txt 文件:txt1:

Foo
Foo
Foo
Foo

txt2:

Bar
Bar
Bar
Bar

我怎样才能将它们连接到一个新文件的左侧和右侧让我们这样说:

Bar Foo
Bar Foo
Bar Foo
Bar Foo

我尝试了以下方法:

folder = ['/Users/user/Desktop/merge1.txt', '/Users/user/Desktop/merge2.txt']
with open('/Users/user/Desktop/merged.txt', 'w') as outfile:
for file in folder:
with open(file) as newfile:
for line in newfile:
outfile.write(line)

最佳答案

使用itertools.izip合并两个文件中的行,像这样

from itertools import izip
with open('res.txt', 'w') as res, open('in1.txt') as f1, open('in2.txt') as f2:
for line1, line2 in izip(f1, f2):
res.write("{} {}\n".format(line1.rstrip(), line2.rstrip()))

注意:此解决方案将只从两个文件写入行,直到其中一个文件耗尽。例如,如果第二个文件包含 1000 行而第一个文件只有 2 行,则每个文件中只有两行被复制到结果中。如果即使在最短文件耗尽后你也想要最长文件中的行,你可以使用 itertools.izip_longest , 像这样

from itertools import izip_longest
with open('res.txt', 'w') as res, open('in1.txt') as f1, open('in2.txt') as f2:
for line1, line2 in izip_longest(f1, f2, fillvalue=""):
res.write("{} {}\n".format(line1.rstrip(), line2.rstrip()))

在这种情况下,即使较小的文件耗尽,较长文件中的行仍将被复制,fillvalue 将用于较短文件中的行。

关于python - 如何用 python "join"两个文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27997400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com