Python 不同IDE中的相对路径
假设以下工作区在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编辑器似乎只是以文件执行的
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的代码——这是我在最初的评论中建议的。