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")
这代码必须两个文件长度一样,如果不一样 就行不通了, 求大侠更好代码 谢谢 展开
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")
这代码必须两个文件长度一样,如果不一样 就行不通了, 求大侠更好代码 谢谢 展开
2个回答
展开全部
>>> 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]
>>>
读文件,将内容保存到列表我就不写了。你写的没什么问题,你只要把两个列表的长度补齐就可以了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询