我的文件有5个值,以1个逗号和1个空格分隔。其中: 1,2,3,5,6
但是,无论我尝试什么(剥离,拆分等),我都无法处理文件并将其加到累加器(suma = 0)。
当我尝试将值转换为整数时,我收到以下错误: ValueError:int()的基数为10的无效文字:'1,2,3,5,6'
我如何阅读它们,转换它们然后总结它们?
def main():
input_file = open('sumadatos.txt', 'r')
line = input_file.readline()
while line != '':
value = int(line)
suma += value
print suma
main()
答案 0 :(得分:2)
一种方法是
with open('sumadatos.txt', 'r') as f:
print(sum(map(int, next(f).split(','))))
int
可以使用前导和尾随空格,因此int(' 1 ')
=> 1
答案 1 :(得分:1)
您可以使用ast
库
>>> f = open("sumadatos.txt")
>>> sum(ast.literal_eval(f.readline()))
17
但如果你想按常规做,你可以做
>>> sum(int(i) for i in f.readline().split(','))
17
答案 2 :(得分:0)
numpy
库有一些很棒的内置函数,用于将分隔文件解析为数组。
from numpy import genfromtxt
data = genfromtxt('sumadatos.txt', delimiter=',')
print data.sum()