python - 难以找到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:'-'。我究竟做错了什么?
解决方案
你的问题是
for number in line[3]:
在 csv 文件中查找负数。for 循环将给出两个负数字符串,即 -4 循环“-”、“4”。因此 int('-') 对于基数为 10 的 int() 是无效的文字:'-'。
您不需要额外的 for number 循环。尝试以下操作:
for line in file:
total = total + int(line[3])
如果你刚刚用打印号测试过,我想你会找到答案的。
推荐阅读
- python - Sklearn Bagging SVM 总是返回相同的预测
- c# - 如何通过 Play Services Resolver 删除 pod?
- python - 在 django 中使用 id 作为 url 有什么解决方案吗?
- android - 调试 APK 安装被播放保护阻止
- javascript - 在nodejs中使用rest auth api
- java - 如何在 EclipseLink JPQL 查询中指定模式?
- c - 便利店程序的最终价值是正确的,但是当您输入付款时,它会计算错误
- oracle - Oracle OSB cdata 传递到请求信封
- python - 数据框的值范围中的重复行
- reactjs - 如何使用 react-resizable 和 antd 的表指定列的最小宽度?