写在前面
最近在使用 vscode 写代码 (python) 时发现使用相对路径读取文件以及写入文件时,想要直接在当前目录下读写一直提示没有该文件,需要返回根目录。并且使用 vscode 自带调试"F5"以及 Code Runner 扩展即右上角三角形都是如此。参考了许多资料,终于解决了问题。
所用测试文件
这是我的文件结构
test.py
with open("./test.txt") as f:text = f.read()print(text)`
test.txt
This is a passage for demonstration.
"F5"调试
调试报错
[Errno 2] No such file or directory: ‘./test.txt’
解决方法
在所配置的 launch.json 文件中的 configurations 列表中加入这一行,记得在上一行末尾加上一个逗号 。
"cwd": "${fileDirname}"
再来看一下效果。现在可以正常运行了。
在vscode中运行项目时,当前工作路径是项目根目录;而在pycharm中,当前工作目录则是当前运行脚本的直接父目录。
Code Runner调试
调试报错
FileNotFoundError: [Errno 2] No such file or directory: ‘./test.txt’
解决方法
打开扩展"Code Runner"→打开扩展设置→随便找到一个“在_setting.json_中编辑”→把下面三行加到最后面(大括号里,第一行应该在之前安装扩展时就改过了 )
“code-runner.runInTerminal”: true,
“code-runner.fileDirectoryAsCwd”: true,
“python.terminal.executeInFileDir”: true`
当然,也可以在扩展中找到对应的选项并打上勾
在 Code Runner 的扩展设置中找到第二行
在 python 的设置中找到第三行
具体操作:文件→首选项→设置→扩展→ Python →找到对应项
再来看一下效果。现在可以正常运行了。
这里解决的思路跟第一种不一样,我们可以看到,它还是直接进入了目标文件夹里(即图片中的 test 文件夹)。实际上,即使你啥都没修改,只要你在每次使用 Code Runner 调试时, cd 一下进入对应的文件夹也还是可以正常运行的。