让我们定义一个这样的简单文件夹结构:
project
+---code
| main.py
|
\---data
foo.txt
卖弄.朋友:
foo_path = "./../data/foo.txt"
with open(foo_path) as f:
s = f.read()
print(s)
此代码在使用python main.py
命令正常运行时运行良好,但在使用VSCode Python调试器进行调试时会抛出以下错误。
Exception has occurred: FileNotFoundError
[Errno 2] No such file or directory: './../data/foo.txt'
File "C:\Users\user\Workspaces\project\code\main.py", line 3, in <module>
with open(foo_path) as f:
我在Windows 10中使用VSCode和Python 3.7.1 Anaconda版本。我知道文件路径就像Linux路径,但它在正常运行时工作。我在the GitHub repo of Python VSCode Extension找不到任何未解决的问题。这是一个常见错误,还是我做错了什么?
此外,如果我定义foo_path = ".\\..\\data\\foo.txt"
,它的行为与前一个相同。它运行正常并在调试时给出相同的错误。
如何在不使用os.path
等额外包或使用完整文件路径的情况下解决此问题?
编辑:我尝试在Ubuntu 18.04,它表现相同。
您可以使用cwd
option in your debug configuration,但我建议您不要硬编码路径并使用pathlib
或os.path
指定相对于__file__
位置的文件(我不太清楚为什么要避免这些模块) 。