我有两个来自一个实验的大型文本数据文件,我想以特殊方式将其拆分为一个。
小数据样本:
文件1:
plotA 10
plotB 9
plotC 9
文件2:
98%
7/10
21
98%
5/10
20
98%
10/10
21
我想要这样的结果:
plotA 10 98% 7/10 21
plotB 9 98% 5/10 20
plotC 9 98% 10/10 21
我不知道它在 python 中是如何解决的。我尝试重新排序 file2:
lines = file2.readlines()
aaa = lines[0] + lines[3] + lines[6]
bbb = lines[1] + lines[4] + lines[7]
ccc = lines[2] + lines[5] + lines[8]
并使用 zip 但我失败了(而且这种方法对于大文本文件很耗时)。
有什么帮助吗?
请您参考如下方法:
您可以使用 itertools.izip_longest将文件 2 切成三行并再次使用它来将它们与第一个文件一起压缩:
from itertools import izip_longest
with open('file1.txt') as f1, open('file2.txt') as f2:
args = [iter(f2)] * 3
z = izip_longest(f1, izip_longest(*args), fillvalue='-')
for line, tup in z:
print '{:11}'.format(line.strip()), '{:5}{:5}{:>5}'.format(*map(str.strip, tup))
如果你想将这个结果写入一个新文件,你可以打开一个文件进行写入,而不是打印它,而是将行写入文件。
结果:
plotA 10 98% 7/10 21
plotB 9 98% 5/10 20
plotC 9 98% 10/10 21
