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

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:修改运行时的工作目录
    如果你用命令行运行脚本,先切换到脚本所在目录再执行:
    cd c:\Users\07gas\OneDrive\Documents\pyFileTest
    python ManipulatingFiles.py
    
    如果你用PyCharm、VS Code等IDE运行,在对应运行配置中,把「Working Directory(工作目录)」参数设置为pyFileTest文件夹路径即可。
  • 方案3:直接写完整绝对路径(不推荐,迁移到其他设备会失效)
    直接把文件路径写死为全路径:
    f = open(r"c:\Users\07gas\OneDrive\Documents\pyFileTest\test.txt", "r")
    print(f.name)
    f.close()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:45:08