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

如何将文本文件读取的数字转为整数?Python TypeError报错解决

问题分析与解决

错误原因

你遇到的TypeError根源在于:

  • 你的ChangeSet.txt每行只有单个数字,没有逗号,执行line.split(',')后会得到单元素列表(比如['30000']),经过列表推导后inner_list变成[30000],最终list_of_lists是嵌套列表结构(比如[[30000], [30002], ...])。
  • 循环里ch = int(list_of_lists[i])试图把列表转成整数,这不符合int()的参数要求,因此触发错误。

解决方案

根据你的需求,有两种简单的修正方式:

方式一:直接读取为整数列表(推荐,更简洁)

既然每行只有一个数字,无需嵌套列表,直接将每行转成整数存入普通列表:

list_of_numbers = []
with open(r'C:\MentorUTTFVC\ChangeSet.txt') as f:
    for line in f:
        # 去除首尾空白,跳过空行
        cleaned_line = line.strip()
        if cleaned_line:
            list_of_numbers.append(int(cleaned_line))

# 后续循环直接取整数即可
for num in list_of_numbers:
    ch = num
    # 这里编写你的后续操作逻辑

方式二:保留嵌套列表结构,取子列表内的元素

如果必须保留原嵌套列表格式,循环时取每个子列表的第一个元素即可:

list_of_lists = []
with open(r'C:\MentorUTTFVC\ChangeSet.txt') as f:
    for line in f:
        # 过滤空字符串,处理可能存在的空行
        inner_list = [int(elt.strip()) for elt in line.split(',') if elt.strip()]
        list_of_lists.append(inner_list)

length = len(list_of_lists)
for i in range(length):
    # 取子列表的第一个元素
    ch = list_of_lists[i][0]
    # 这里编写你的后续操作逻辑

为什么硬编码正常?

硬编码时你使用的是单个整数(比如ch = int(30000)),类型符合int()的参数要求;而读取文件后得到的是嵌套列表,类型不匹配,因此报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 20:20:07