我有一个包含几个子文件夹的文件夹,如下所示:
my-project/
input/
data.csv
src/
script.py
我想从 script.py
中的 my-project/input/data.csv
读取数据,所以我有:
import pandas as pd
data = pd.read_csv('../input/data.csv')
但是,我的工作区是 my-project
所以当我运行 script.py
时它返回:
Exception has occurred: FileNotFoundError [Errno 2] No such file or directory: '../input/data.csv
这是可以理解的,因为input
在my-project
中,不在同一层级。然而,使用 ..
引用确实感觉像是引用 data.csv
的正确方法,就像我们从 script.py
中所做的那样。但也许我错了?
如果这是引用我的数据文件的合理方式——我如何设置 VSCode 以便能够运行脚本而不返回错误?我认为应该有一种方法可以将子文件夹添加到搜索路径,而无需将子文件夹作为工作区打开,但我在尝试找到它时运气不佳。
@Edit:请注意,我知道相对/绝对路径的概念。这个问题更多是关于 VSCode 设置的。我也愿意接受这个答案:“不,在这个设置中引用 ../input/data.csv
是愚蠢的事情。你应该引用 input/data。 csv
而不是,因为...”(这与我目前的理解相矛盾,但我可能完全错了,我很乐意学习不同的观点)
最佳答案
相信这比你想象的要简单,一起来做吧!
使用的扩展......
我相信下面的步骤并不难!
将默认解释器切换到创建的虚拟环境
创建一个简单的 launch.json,使用简单的选择python 脚本
猜猜现在是什么!我们现在要做的就是在编辑器中选择一个 script.py 文件,然后...... RUN!
您可以在终端中看到结果。
让我们谈谈......
生成的 launch.json 文件会强制我们在每次要启动程序时单击开始按钮之前在编辑器中选择“**src.script.py”,如果您愿意,我可以建议一个更恰当的方法
在第6步中,你可以选择Module而不是Python file,之后编辑器会提示你一个字段要求模块名称,我们的输入必须是< strong>src.script.
我们将像这样得到我们的 launch.json 文件......
现在,我们可以从我们想要的地方启动程序,这意味着如果在编辑器中打开的文件是“src/data.json”,例如, 转到调试器部分并单击开始将始终启动 src/script.py 文件。
关于python - 在 Python 中引用子目录之间的文件的正确方法和 VSCode 设置是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66382253/