重装Windows后Visual Studio Code运行Python脚本无法正确识别工作目录
VS Code Python运行时工作目录异常解决方案
该问题本质是重装系统后VS Code的Python扩展默认配置被重置,运行脚本时默认将工作区根目录作为当前工作目录(cwd),而非脚本自身所在的目录,因此用相对路径读取同目录文件时会触发文件不存在报错;而手动在命令行执行时通常会先切换到脚本所在目录再运行,因此运行正常。
可行解决方案
方案1:修改运行调试配置(适合常用调试模式运行脚本的场景)
- 打开VS Code左侧「运行和调试」面板,点击
创建launch.json文件,选择Python环境下的「Python文件」配置模板 - 在生成的配置块中添加参数
"cwd": "${fileDirname}",示例完整配置如下:
{ "version": "0.2.0", "configurations": [ { "name": "Python: 当前文件", "type": "python", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "console": "integratedTerminal" } ] }- 保存配置后重新运行脚本即可生效
- 打开VS Code左侧「运行和调试」面板,点击
方案2:修改终端执行默认配置(适合直接右键运行脚本的场景)
- 按下快捷键
Ctrl+,打开VS Code设置页,搜索配置项python.terminal.executeInFileDir - 勾选该配置项,保存后后续所有在终端直接执行的Python脚本,都会自动切换到脚本所在目录后再运行
- 按下快捷键
方案3:代码层面兼容(适合需要跨设备分发、不依赖编辑器配置的场景)
在脚本开头添加路径计算逻辑,所有文件读取都基于脚本自身所在的绝对路径拼接,不需要依赖运行时的工作目录:import os # 固定获取当前脚本所在的绝对目录,不受运行环境影响 SCRIPT_ROOT = os.path.dirname(os.path.abspath(__file__)) # 读取同目录下的test.txt示例 target_file = os.path.join(SCRIPT_ROOT, "test.txt") with open(target_file, "r", encoding="utf-8") as f: print(f.read())
以上方案任选其一即可解决问题,无其他额外依赖。
内容的提问来源于stack exchange,提问作者Riggun
相关产品推荐
相关产品推荐

