如何让VS Code与Python原生运行os.getcwd()时输出一致?
解决VS Code与直接运行Python时os.getcwd()输出不一致的问题
问题原因
VS Code默认启动时的工作目录是你的用户主目录(C:\Users\Name),而直接双击脚本或在脚本所在目录打开命令行运行Python时,工作目录就是脚本所在的项目目录(C:\Users\Name\Yuna-Discord-Bot),这才导致os.getcwd()输出不同。
解决方法
方法1:让VS Code使用项目目录作为工作目录
直接在VS Code中打开你的Yuna-Discord-Bot项目文件夹——点击左侧资源管理器的「打开文件夹」,选中该项目目录。之后运行代码时,os.getcwd()就会输出项目目录,和直接运行Python的结果一致。
方法2:在代码中获取脚本所在目录(最可靠的跨环境方案)
如果不想依赖VS Code的设置,直接在代码里获取脚本本身的所在路径,完全不受当前工作目录影响,更适合跨设备使用。修改代码如下:
import os # 获取当前脚本所在的绝对目录 script_dir = os.path.dirname(os.path.abspath(__file__)) print(script_dir) input("Enter to close")
这样不管是在VS Code里运行,还是直接双击脚本,输出都会是C:\Users\Name\Yuna-Discord-Bot。
方法3:修改VS Code的运行配置
打开VS Code的运行和调试面板(快捷键Ctrl+Shift+D),点击「创建launch.json文件」并选择Python环境,然后在生成的launch.json中添加"cwd"字段,指定工作目录为当前脚本所在路径:
{ "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "cwd": "${fileDirname}" } ] }
保存配置后,在VS Code中运行代码,os.getcwd()的输出就会和直接运行Python一致。
内容的提问来源于stack exchange,提问作者Jea
相关产品推荐
相关产品推荐

