VS Code运行Python文件时工作目录固定为C:/Users/User而非脚本所在目录
问题根源
VS Code启动Python进程时,默认以当前打开的工作区根路径或者全局配置的默认路径作为进程工作目录,和脚本自身的存放路径没有绑定关系。os.getcwd()的作用是返回进程启动时的工作目录,而非脚本文件所在的文件夹路径,因此无论脚本放在哪个盘符路径下,调用该接口都会返回固定的C:\Users\andre路径。
可用解决方法
- 临时调整单次运行的工作目录
打开目标Python脚本后,点击右上角运行按钮旁的下拉箭头,在运行配置中手动指定工作目录为当前脚本所在文件夹即可。 - 永久配置默认运行规则
- 按下快捷键
Ctrl+,打开VS Code设置面板 - 搜索配置项
Python > Terminal: Execute In File Dir - 勾选该选项,后续运行所有Python脚本时,VS Code都会自动将工作目录切换到脚本所在文件夹,此时
os.getcwd()即可返回对应路径。
- 按下快捷键
- 代码层面兼容(不依赖编辑器配置)
如果需要让脚本在任意编辑器、任意启动路径下都能定位到自身所在目录,可以直接通过内置变量获取路径并主动切换工作目录,无需依赖编辑器配置:import os # 获取当前脚本的绝对所在文件夹路径 script_path = os.path.dirname(os.path.abspath(__file__)) # 主动切换工作目录到脚本所在文件夹 os.chdir(script_path) # 后续调用os.getcwd()即可拿到脚本所在目录 print(os.getcwd())
补充说明:该表现是Python本身的机制导致,并非VS Code独有问题,所有启动Python进程的场景下,
os.getcwd()返回的都是进程启动时的工作目录,和脚本存放路径没有必然关联。
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

