首页 > 解决方案 > 难以找到csv文件的总和

问题描述

编写一个名为“csv_sum”的函数,它接受一个字符串作为参数,表示一个 CSV 文件的名称,该文件有 5 列,格式为“int, int, int, int, int”,并返回第四列中所有值的总和从输入文件。(下面是我的代码)

import csv
def csv_sum(string):
    with open(string) as f:
        file = csv.reader(f)
        total = 0
        for line in file:
            for number in line[3]:
                total = total + int(number)
    return total

我不断收到输入错误['通常.csv']:int()的无效文字,基数为10:'-'。我究竟做错了什么?

标签: pythoncsv

解决方案


你的问题是

for number in line[3]:

在 csv 文件中查找负数。for 循环将给出两个负数字符串,即 -4 循环“-”、“4”。因此 int('-') 对于基数为 10 的 int() 是无效的文字:'-'。

您不需要额外的 for number 循环。尝试以下操作:

for line in file:
    total = total + int(line[3]) 

如果你刚刚用打印号测试过,我想你会找到答案的。


推荐阅读