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

Python调用readlines()读取文件为空,使用seek(0)仍不生效问题求助

问题原因分析
  • 多余操作:以只读模式刚打开文件时,文件指针默认位于文件起始位置,你新增的file.seek(0)没有实际作用,不是导致输出空白的原因。
  • 核心语法错误:for循环遍历逻辑有误,你遍历的是lines列表中的每一行元素line,但打印的却是整个lines列表。如果是在单次运行环境中重复执行读取逻辑,首次读取完成后文件指针移动到末尾,后续再执行readlines()就会返回空列表,打印结果就是空白。
  • 潜在编码问题:打开文件时未指定编码,当系统默认编码和test.txt的文件编码不匹配时,也可能出现读取内容为空的情况。
修复方案
  • 修正for循环内的打印对象,将print(lines)改为print(line)。
  • 优先使用上下文管理器with语句操作文件,会自动处理文件关闭、指针重置逻辑,避免手动操作出错。
  • 打开文件时明确指定编码参数,避免编码不匹配问题。
修正后代码示例
# with语句会在代码块运行结束后自动关闭文件,无需手动调用close()
with open('test.txt', 'r', encoding='utf-8') as file:
    lines = file.readlines()
    for line in lines:
        # 打印当前遍历到的单行内容,strip()可去除行尾多余的换行符
        print(line.strip())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:09:02