读取逗号分隔值

时间:2015-02-08 22:00:43

标签: python

我的文件有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()

3 个答案:

答案 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()