如果在文本文件中以数字开头,则查找行的总和

时间:2018-10-30 17:41:21

标签: python

我有一个文本文件,其中包含的数据是

a b c d e
1 2 3 4 5
f g h i j
6 7 8 9 10
k l m n o
11 12 13 14 15

,所需的输出是0、15、0、40、0、65。
我的尝试

f=open("C:/Users/kaleemi/Desktop/text.txt","r+")
s=0  
for line in f:  
    for i in line:  
        if i.isnumeric():  
            s=s+int(i)  
        else:  
            continue  
    print(s)  
    s=0  

输出:0、15、0、31、0、20

请帮助我更正此代码。

2 个答案:

答案 0 :(得分:3)

您的问题是您在每一行中加了位数,而不是数字。 split以单独的编号显示,并将那些更改为int

s=0  
for line in f:  
    for i in line.split():  
        if i.isnumeric():  
            s=s+int(i)  
    print(s)  
    s=0

输出:

0
15
0
40
0
65

请注意,我删除了无用的continue

如果需要在一行中输出,则需要将它们收集在一个列表中,并在阅读所有输入行之后将其打印出来。我保留了原始程序的格式。

是的,可以使用列表过滤器上的sum来完成 。我还保持您当前的编程水平。

答案 1 :(得分:-1)

import numpy

with open("/Users/michael/Desktop/text.txt") as f:
    data = f.readlines()

for line in data:
    try:
        l = list(map(float, line.rstrip().split(" ")))
        mean = int(numpy.sum(l))
    except ValueError:
        mean = 0
    print(mean)