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

Python脚本运行未打印pride.txt文本文件内容的原因及解决方案

问题原因

出现该现象的核心原因是Python中相对路径的查找规则和你预期的不一致:
你以为open("pride.txt")会找脚本文件同级目录下的书籍文件,但实际上Python解析相对路径时,参考的是「你执行Python命令时终端所在的工作目录」,不是脚本自身存放的目录。
这种情况下程序没有报FileNotFoundError,是因为你运行脚本的工作目录下刚好存在一个同名的空pride.txt文件,程序实际打开的是这个空文件,自然读不到任何书籍内容。
小概率诱因:

  • 你存放书籍的pride.txt本身保存失败,文件大小为0字节,本身就是空文件
  • 系统开启了「隐藏已知文件类型扩展名」,你看到的pride.txt实际文件名是pride.txt.txt等错误名称,工作目录下恰好有空的同名文件被匹配到
解决步骤
  • 先定位实际打开的文件位置,不要靠主观判断,在原有代码中加几行调试信息,确认文件路径和读取长度:
import os
f = open("pride.txt", "r", encoding="UTF-8")
# 打印当前打开文件的绝对路径
print("实际读取的文件路径:", os.path.abspath(f.name))
s = f.read()
# 打印读取到的内容长度
print("读取内容字节长度:", len(s))
f.close()
print("Contents of file:", s)

运行后如果打印的路径不是你存放书籍的那个文件路径,就坐实了找错文件的问题。

  • 改用绝对路径写法,固定读取脚本同级目录下的书籍文件,彻底规避工作目录变化带来的路径错误,推荐用with上下文语法自动处理文件关闭,避免资源泄漏:
import os
# 获取当前脚本自身所在的绝对目录
script_folder = os.path.dirname(os.path.abspath(__file__))
# 拼接得到书籍文件的完整绝对路径
book_path = os.path.join(script_folder, "pride.txt")
# 自动管理文件打开和关闭
with open(book_path, "r", encoding="UTF-8") as f:
    content = f.read()
print("Contents of file:", content)
  • 若调试后确认路径完全正确,但读取长度还是0,就右键查看你存书籍的pride.txt属性,确认文件大小不是0字节,如果是空文件就重新把书籍内容写入保存即可。
  • 打开系统的文件扩展名显示功能,确认文件名确实是pride.txt,没有被隐藏的多余后缀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 13:51:26