Python 求两个文件 内容 对应的列 数字 相加

有两个文件如下:data1文件内容:10.5100101536.5data2文件内容:5010193.215要求:得到一个新的文件,内容是data1和data2对应的列数... 有两个文件如下:

data1 文件内容:
1 0.5 100
10 15 36.5
data2 文件内容:
50 10 19
3.2 1 5
要求:得到一个新的文件,内容是 data1 和 data2 对应的列数字相加的和,新文件内容:
51 10.5 119
13.2 16 41.5

#!/usr/bin/env python

#两个文件长度要一样
list1, list2 = [], []

for entry in open('data1.txt', 'r'):
list1.append(entry.strip().split(" "))

for entry in open('data2.txt', 'r'):
list2.append(entry.strip().split(" "))

outfile = open('data3.txt', 'w')

for r in xrange(max(len(list1), len(list2))):
outfile.write(" ".join([str(sum(map(float, x))).strip("0").strip(".") for x in zip(list1[r],list2[r])]) + "\n")

这代码必须两个文件长度一样,如果不一样 就行不通了, 求大侠更好代码 谢谢
展开
 我来答
leffe_李洋
推荐于2018-04-06 · 超过59用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:114万
展开全部
>>> a = [1,2,3,4,5]
>>> b = [2,3,4]
>>>
>>> len_a = len(a)
>>> len_b = len(b)
>>> if len_a > len_b:        #列表长度补齐,a长的话用0补齐b
...     for i in range(len_a - len_b):
...             b.append(0)
... elif len_b > len_a:     #b长的话用0补齐a
...     for i in range(len_b - len_a):
...             a.append(0)
... else:                    #两个列表一样长,什么都不做
...     pass
...
>>> comb = zip(a, b)
>>> result = []
>>> for a, b in comb:
...     result.append(a+b)
...
>>> result
[3, 5, 7, 4, 5]
>>>

读文件,将内容保存到列表我就不写了。你写的没什么问题,你只要把两个列表的长度补齐就可以了。

可转债量化分析
2014-12-09 · TA获得超过141个赞
知道小有建树答主
回答量:364
采纳率:0%
帮助的人:131万
展开全部
不一样长以最短的为准:
if len(list1)<len(list2):
outfile.write(" ".join([str(sum(map(float, x))).strip("0").strip(".") for x in zip(list1[r],list2[r])]) + "\n")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式