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

Python从文件读取列表仅显示最后一项的问题求解

问题原因分析

你的代码存在两个核心问题,导致只能获取到最后一个元素:

  • 每次循环都重新赋值dataList,覆盖之前的内容
    在for line in data:循环里,你每次都执行dataList = newLine.split('\n'),这意味着每遍历一行就会新建一个dataList,之前行的内容会被直接丢弃。循环结束后,dataList自然只保留最后一行的处理结果。

  • 未处理文件中的空行(隐性问题)
    你的data.txt里数字行之间存在空行,这些空行在遍历过程中也会被当作一行处理。虽然当前问题未体现,但如果修复第一个问题后,空行会被转化为空字符串加入列表,影响最终结果。

修复后的代码
# 初始化空列表存储所有数字
dataList = []
# 使用with语句自动管理文件,无需手动调用close()
with open('data.txt', 'r') as data:
    for line in data:
        cleaned_line = line.strip()  # 移除换行符和首尾空白字符
        if cleaned_line:  # 跳过空行,只保留有效数字行
            dataList.append(cleaned_line)

print('The numbers are ', dataList)
countNumbers = len(dataList)
print('The count of the numbers is ', countNumbers)
修复说明
  1. 提前初始化dataList = [],循环中用append()将有效内容添加到列表,而非每次重新赋值,保证所有行的内容都被保留。
  2. 使用with open(...)语句,Python会在代码块结束后自动关闭文件,比手动调用close()更安全可靠。
  3. 用line.strip()统一移除换行符和空白,再通过if cleaned_line:过滤空行,避免无效内容混入列表。

修复后运行代码,输出结果为:

The numbers are  ['90', '100', '80']
The count of the numbers is  3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:15:50