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

我对python和pycharm很陌生,我感到困惑!当我在 pycharm 中运行我的项目时,它给我一个关于找不到文件路径的错误。物理文件路径为:


'../Project/BC/RequiredFiles/resources/a_reqs.csv'

我的项目工作目录是“ Project / BC”,项目运行文件(startApp.sh)也在那里。但是想要使用 a_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 OS中工作,如果我没记错的话,该代码可在Windows上使用!


因此,我如何告诉Pycharm(在Mac中)查看和加载“ RequiredFiles”文件夹作为我的工作目录的子文件夹!


烙印99
浏览 310回答 2
2回答

明月笑刀无情

os.getcwd返回进程的当前工作目录(可能是所在目录startApp.sh或其他目录,取决于 PyCharm 的运行配置设置,或者,如果从命令行启动程序,则是执行命令的目录) .要使路径独立于当前工作目录,您可以获取 Python 文件所在的目录并从中构建路径:os.path.dirname(__file__) + "/resources/a_reqs.csv"

慕哥9229398

从您的问题中我看到的是: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.pathif 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/ 移动到 /resources/。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python