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

VSCode运行Python脚本时自动切换目录致文件找不到问题求助

VSCode运行Python脚本时工作目录异常导致文件找不到的解决方法

核心原因

VSCode运行调试时自动执行了cd /home/kali/Desktop,导致当前工作目录不是脚本所在的/Desktop/Python/File Handling,因此无法找到同目录下的文件。

解决方案

1. 配置调试launch.json固定工作目录

这是最直接的解决方式,让调试时自动切换到脚本所在目录:

  • 打开VSCode左侧「调试」面板,点击「创建launch.json文件」并选择Python环境
  • 在生成的launch.json中,给对应配置添加"cwd": "${fileDirname}"字段,示例:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "${fileDirname}"
        }
    ]
}

${fileDirname}是VSCode内置变量,代表当前打开脚本的所在目录,运行不同脚本时会自动适配。

2. 修改VSCode集成终端默认工作目录

如果希望集成终端打开时默认进入脚本所在目录:

  • 按下Ctrl+,打开设置面板
  • 搜索terminal.integrated.cwd,将其值修改为${fileDirname}
  • 重启VSCode生效,之后终端会自动切换到当前脚本的目录

3. 排查插件或任务导致的自动目录切换

若之前正常突然出现问题,可能是插件或任务配置干扰:

  • 查看已安装的终端、项目管理类插件,临时禁用最近新增的插件,排查是否是插件自动修改了工作目录
  • 检查项目根目录下的.vscode/tasks.json,看是否存在自动执行cd /home/kali/Desktop的任务配置,如有则删除或修改

4. 代码层面的通用兼容写法(无需修改VSCode设置)

如果不想依赖VSCode设置,可在脚本开头添加一段通用代码,自动切换到脚本所在目录:

import os
# 获取当前脚本的绝对路径所在目录
script_directory = os.path.dirname(os.path.abspath(__file__))
# 切换工作目录到脚本目录
os.chdir(script_directory)

# 之后正常操作文件
with open("apple.jpeg", "rb") as f:
    # 文件操作逻辑
    pass

这种写法不受运行环境影响,在VSCode、终端或其他编辑器中都能正确找到同目录文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:55:26