Python 不同IDE中的相对路径

Python 不同IDE中的相对路径,python,path,Python,Path,假设以下工作区在IDE中打开: myWorkspace |- folder1 |- file1.py |- folder2 |- file2.csv 我编辑并执行file1.py,我想在其中使用file2.csv。当我使用PyCharm作为编辑器时,正确的方法是使用路径“./folder2/file2.csv”。但是当我使用VSCode时,我需要使用路径“folder2/file2.csv”。因此VSCode假设开始是工作区文件夹,而我的PyCharm编辑器似乎只是以文件执行的

假设以下工作区在IDE中打开:

myWorkspace
|- folder1
    |- file1.py
|- folder2
    |- file2.csv
我编辑并执行file1.py,我想在其中使用file2.csv。当我使用PyCharm作为编辑器时,正确的方法是使用路径“./folder2/file2.csv”。但是当我使用VSCode时,我需要使用路径“folder2/file2.csv”。因此VSCode假设开始是工作区文件夹,而我的PyCharm编辑器似乎只是以文件执行的路径作为开始点


我的问题:这两种方式中哪一种更常见?是什么属性导致了这种行为?

我认为更常见的方法是VS代码的工作方式。至少在IDE之外运行程序时。如果我在这里没有错的话,
myWorkspace
文件夹就是项目的根文件夹。
但我不明白为什么你的根文件夹中没有任何内容。也许您应该在根文件夹中为入口点创建主文件,并从
folder1
导入该文件

此行为由您执行程序的方式决定。
如果按如下方式运行脚本:

$pwd
…/myworkplace
$python folder1/file1.py
然后CWD(当前工作目录)将是
myworkplace
文件夹,而
folder2/file2.csv
方法将起作用

如果按如下方式运行脚本:

$pwd
…/myworkplace/folder1
$python file1.py

然后CWD将是
folder1
文件夹,而
./folder2/file2.csv
路径将是正确的路径。

IMO最好的方法是从
file1.py
脚本中内置的
.\uuuuuuuuuuuuuuuuu
变量的值中提取目录,并创建一个与之相关的路径以打开目录
file2.csv
。这应该是独立于IDE的。@martineau我正在实现一个语言服务器,所以我只知道打开了哪个文件。在本例中,用户打开了
file1.py
,我可以看到这一点。如果该用户想要导入
file2.csv
,我需要提供正确的路径,我不知道上面哪个路径是正确的。本例中没有运行文件。在您的问题中,您说“…执行file1.py,我想在其中使用file2.csv”,因此您刚才在评论中所说的与此不符。@martineau您是对的。但我还是想知道这些案例中哪一个更常见,是什么导致了这种行为。关于什么,“更常见”?PyCharm现在是否比VSCode更受欢迎?您应该努力编写完全独立于IDE的代码——这是我在最初的评论中建议的。