读代码专项第 6 题:CSV 未跳表头
import csv
total = 0
with open("sales.csv", encoding="utf-8") as f:
reader = csv.reader(f)
for row in reader:
total = total + int(row[0])
print(total)
sales.csv 内容: amount,product 100,A 200,B
实际报错: ValueError: invalid literal for int() with base 10: 'amount'
-
代码意图:
读取 sales.csv 中 amount 列的金额,并计算总和。 -
问题和根因:
问题在循环里直接 int(row[0])。csv.reader 不会自动跳过表头,第一次读到的是 ["amount", "product"],所以 row[0] 是 "amount",int("amount") 不能转换成整数,因此报 ValueError。 -
修复方案:
在 for 循环前增加 next(reader) 跳过表头。

浙公网安备 33010602011771号