在Python中合并文件

时间:2017-07-30 09:44:21

标签: python python-3.x

我想合并2个文件。第一个文件(co60.txt)仅包含整数值,第二个文件(bins.txt)包含浮点数。

co60.txt:

11
14
12
14
18
15
18
9

bins.txt:

0.00017777777777777795
0.0003555555555555559
0.0005333333333333338
0.0007111111111111118
0.0008888888888888898
0.0010666666666666676
0.0012444444444444456
0.0014222222222222236

当我用这段代码合并这两个文件时:

with open("co60.txt", 'r') as a:
    a1 = [re.findall(r"[\w']+", line) for line in a]
with open("bins.txt", 'r') as b:
    b1 = [re.findall(r"[\w']+", line) for line in b]
with open("spectrum.txt", 'w') as c:
    for x,y in zip(a1,b1):
        c.write("{} {}\n".format(" ".join(x),y[0]))

我明白了:

11 0
14 0
12 0
14 0
18 0
15 0
18 0
9 0

看来,当我合并这两个文件时,此代码仅合并文件bins.txt的圆值。

如何让文件像这样合并:

11 0.00017777777777777795
14 0.0003555555555555559
12 0.0005333333333333338
14 0.0007111111111111118
18 0.0008888888888888898
15 0.0010666666666666676
18 0.0012444444444444456
9 0.0014222222222222236

2 个答案:

答案 0 :(得分:3)

你可以在没有正则表达式的情况下做到这一点:

sudo apt-get remove bsdgames
sudo apt-get remove --auto-remove bsdgames
sudo apt-get purge bsdgames
sudo apt-get purge --auto-remove bsdgames

with open("co60.txt") as a, open("bins.txt") as b, \ open("spectrum.txt", 'w') as c: for x,y in zip(a, b): c.write("{} {}\n".format(x.strip(), y.strip())) 的内容:

spectrum.txt

答案 1 :(得分:2)

如@immortal所述,如果你想使用正则表达式,那么使用 -

b1 = [re.findall(r"[0-9\.]+", line) for line in b]