Python脚本与test.txt同目录却无法打开该文件是什么原因
问题根本原因
你使用相对路径"test.txt"打开文件时,Python默认从运行脚本时的当前工作目录查找文件,而非从脚本文件本身所在的目录查找。如果启动脚本的位置不对,或是IDE默认的工作目录没有设置为脚本所在的pyFileTest文件夹,就会出现文件存在但找不到的报错。
问题验证方法
在你的脚本开头添加以下代码,运行后对比输出的两个路径即可确认问题:
import os # 打印当前Python进程的工作目录 print("当前工作目录:", os.getcwd()) # 打印当前脚本本身所在的目录 print("脚本所在目录:", os.path.dirname(os.path.abspath(__file__)))
运行后会发现两个路径不一致,且当前工作目录下不存在test.txt文件,因此触发FileNotFoundError。
解决方案
以下按推荐优先级排序:
- 方案1:基于脚本目录构建绝对路径(最稳妥,不受运行位置影响)
直接修改代码如下即可,推荐搭配with语法使用,无需手动关闭文件:import os # 获取脚本所在目录的绝对路径 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接得到test.txt的完整路径,兼容不同操作系统的路径格式 file_path = os.path.join(script_dir, "test.txt") with open(file_path, "r") as f: print(f.name) - 方案2:修改运行时的工作目录
如果你用命令行运行脚本,先切换到脚本所在目录再执行:
如果你用PyCharm、VS Code等IDE运行,在对应运行配置中,把「Working Directory(工作目录)」参数设置为cd c:\Users\07gas\OneDrive\Documents\pyFileTest python ManipulatingFiles.pypyFileTest文件夹路径即可。 - 方案3:直接写完整绝对路径(不推荐,迁移到其他设备会失效)
直接把文件路径写死为全路径:f = open(r"c:\Users\07gas\OneDrive\Documents\pyFileTest\test.txt", "r") print(f.name) f.close()
内容的提问来源于stack exchange,提问作者Geomatrix Gamer
相关产品推荐
相关产品推荐

