You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python转txt内容为整数报错invalid literal for int() base10如何解决

错误原因
  • 分隔符使用错误:文本文件中数字以逗号分隔,代码中调用无参数的split()是按空白字符分割,导致每一行处理后得到的是['0,0,1']这类包含完整逗号拼接字符串的子列表,而非单个数字的字符串。
  • 嵌套列表遍历错误:list_of_lists是由每一行的子列表组成的嵌套列表,直接遍历list_of_lists拿到的是子列表而非单个数字字符串,将带逗号的完整字符串传给int()转换时,int()无法识别带逗号的内容,因此触发报错。
解决方法
  1. 分割行内容时指定分隔符为逗号,调用split(',')将每一行的数字拆分为单独的字符串元素。
  2. 求和前展开嵌套列表,遍历所有单个数字字符串后再转换为整数累加。
修正后完整代码
# 推荐用with语句自动管理文件句柄,无需手动调用close
with open("adj_matrix.txt", "r") as data:
    list_of_lists = []
    for line in data.readlines():
        stripped_line = line.strip()
        # 指定按逗号分割
        line_list = stripped_line.split(',')
        list_of_lists.append(line_list)

print(list_of_lists)
# 先展开嵌套列表再转整数求和
total = sum([int(num) for line in list_of_lists for num in line])
print(total)

如果需要更精简的写法,也可以在读取行时直接完成累加:

with open("adj_matrix.txt", "r") as data:
    total = 0
    for line in data:
        total += sum(int(num) for num in line.strip().split(','))
print(total)

内容的提问来源于stack exchange,提问作者Kyle Tempone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 05:45:00