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

VSCode运行Python直接用相对路径无法识别同目录文件如何解决

问题原因

  • Python读取相对路径时的参考基准是当前工作目录(CWD),不是你运行的.py脚本本身的存储目录
  • VSCode默认运行Python脚本时,工作目录取的是你打开的「工作区根文件夹」,如果你当时打开的工作区不是C:\Users\Username\,当前工作目录就和脚本所在目录不一致,直接写相对路径file1.txt会去工作区目录下查找,自然找不到文件
  • 你可以运行print(os.getcwd())验证,输出的路径就是Python当前查找文件的基准路径

解决方法

方法1:修改VSCode配置(一劳永逸)

打开VSCode设置,搜索python.terminal.executeInFileDir,勾选对应选项,之后运行Python脚本时会自动把工作目录切换到脚本所在目录,直接写open("file1.txt")就能正常读取。

方法2:代码路径拼接(兼容性最好,换环境运行也不会出错)

推荐用__file__变量获取当前脚本的绝对路径,再拼接目标文件路径,写法比你当前用的更稳定:

import os

# 获取当前脚本所在的目录
script_dir = os.path.dirname(os.path.abspath(__file__))
file_path = os.path.join(script_dir, "file1.txt")

with open(file_path, "r") as fn1:
    print(fn1.read())

这个写法不管你在哪运行脚本、工作目录设置成什么,都能正确找到和脚本同目录的文件,更适合用于正式代码。

方法3:代码内手动切换工作目录

如果不想改配置也不想每次拼接路径,可以在代码开头统一切换工作目录:

import os
import sys

os.chdir(sys.path[0])
# 后续直接写相对路径即可正常读取
with open("file1.txt", "r") as fn1:
    print(fn1.read())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:45:03