知方号

知方号

[Errno 2] No such file or directory. 解决VSCode相对路径出错问题

写在前面

最近在使用 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}”

再来看一下效果。现在可以正常运行了。

我个人认为,这里解决的应该是更改了相对的环境,没有修改之前是相对于工作路径而言(即上面的 PYTHON 文件夹, .vscode 文件夹所在的位置),修改之后则是相对于当前环境而言。

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 一下进入对应的文件夹也还是可以正常运行的。

写在最后

本来我都是在需要用到文件路径时在该文件前加上前面的一大堆前缀,但是当别人使用我的代码时总是需要修改路径,这才查阅了众多资料并总结一下,最后的最后,这是第一次写,有许多不足的地方,有什么改进的地方欢迎大家提出(欧我现在还不知道目录的那个超

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。