Python 如何在Pycharm中加载依赖项和子文件夹?

Python 如何在Pycharm中加载依赖项和子文件夹?,python,macos,pycharm,relative-path,Python,Macos,Pycharm,Relative Path,我对python和pycharm是如此的陌生,我被搞糊涂了!! 当我在pycharm中运行我的项目时,它会给我一个关于找不到文件路径的错误。物理文件路径为: '../Project/BC/RequiredFiles/resources/a_reqs.csv' 我的项目工作目录是“project/BC”,项目运行文件(startApp.sh)也在那里。但是想要使用_req.csv的.py文件位于“RequiredFiles”文件夹中。.py文件中有以下代码: reqsfile = os.getc

我对python和pycharm是如此的陌生,我被搞糊涂了!! 当我在pycharm中运行我的项目时,它会给我一个关于找不到文件路径的错误。物理文件路径为:

'../Project/BC/RequiredFiles/resources/a_reqs.csv'
我的项目工作目录是“project/BC”,项目运行文件(startApp.sh)也在那里。但是想要使用_req.csv的.py文件位于“RequiredFiles”文件夹中。.py文件中有以下代码:

reqsfile = os.getcwd() + "/resources/a_reqs.csv"
它返回:
“../Project/BC/resources/a_reqs.csv”

而不是:
“../Project/BC/resources/RequiredFiles/a_reqs.csv”

当.py文件位于
的“RequiredFiles”
中时,
os.getcwd()
也必须包含它。但事实并非如此

问题是我无法更改寻址代码。因为此代码在另一个IDE中工作,而在其他平台或操作系统中使用此代码的其他人没有任何问题。我在mac操作系统中工作,如果我没有弄错的话,代码可以在windows中工作


那么,我如何告诉Pycharm(在mac中)查看并加载“RequiredFiles”文件夹作为我工作目录的子文件夹

os.getcwd
返回进程的当前工作目录(可能是
startApp.sh
所在的目录,也可能是另一个目录,具体取决于PyCharm的运行配置设置,或者,如果从命令行启动程序,则返回执行命令的目录)

要使路径独立于当前工作目录,可以获取Python文件所在的目录并从中构建路径:

os.path.dirname(__file__) + "/resources/a_reqs.csv"

从你的问题中我看到的是:

reqsfile = os.getcwd() + "/resources/a_reqs.csv"
这将生成:“../Project/BC/resources/a_reqs.csv”,而您所需的输出是 “./Project/BC/resources/RequiredFiles/a_reqs.csv”。因为我们知道os.getcwd正在返回“/Project/BC/”,所以要获得所需的结果,您应该执行以下操作:

reqsfile = os.getcwd() + "/resources/RequiredFiles/a_reqs.csv"
但是,由于您希望解决方案与
RequiredFiles
子目录一起使用或不与之一起使用,因此可以应用条件解决方案,例如:

import os.path
if os.path.exists(os.getcwd() + "/resources/RequiredFiles/a_reqs.csv"):
    reqsfile = os.getcwd() + "/resources/RequiredFiles/a_reqs.csv"
else:
    reqsfile = os.getcwd() + "/resources/a_reqs.csv"
此解决方案将reqsfile设置为RequiredFiles目录中的csv(如果该目录存在),因此将适用于您。另一方面,如果RequiredFiles目录不存在,它将默认为/resources/中的csv。 通常,当组在项目上进行协作时,保持相同的文件层次结构,从而避免了这些类型的问题,因此,您可能需要考虑将CSV从/RequiredFiles到/Reals///