You need to enable JavaScript to run this app. Python读取文件数字筛选偶数存入数组报类型错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Python读取文件数字筛选偶数存入数组报类型错误如何解决

问题排查与修复方案

错误原因定位

  • 核心错误:f.read(10) 方法返回的是字符串类型,遍历得到的每个num都是字符格式的内容(比如读到的内容是'1234'时,遍历得到的是'1'、'2'、'3'、'4'四个字符),Python中字符串和整数执行%运算会被识别为字符串格式化操作,因此触发类型错误。
  • 逻辑缺陷:read(10)仅读取文件前10个字符,若文件内数字为多位数、用空格/换行分隔,会出现内容读取不全、数字拆分错误的问题。
  • 隐性问题:原代码未主动关闭文件句柄,长时间运行可能出现资源泄漏。

修复后可运行代码

如果文件中数字以空格、换行、制表符等空白字符分隔,使用如下代码:

array = []
# with上下文管理器会自动处理文件关闭,无需手动调用close()
with open("LFx.txt", "r", encoding="utf-8") as f:
    # 读取全部内容后拆分出每个数字字符串,转为整数后判断奇偶
    for num_str in f.read().split():
        num = int(num_str.strip())
        if num % 2 == 0:
            array.append(num)
print(array)

如果文件中每个数字单独占一行,可使用逐行读取的写法:

array = []
with open("LFx.txt", "r", encoding="utf-8") as f:
    for line in f:
        line = line.strip()
        # 跳过空行避免转换报错
        if not line:
            continue
        num = int(line)
        if num % 2 == 0:
            array.append(num)
print(array)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 20:06:03