为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

烙印99 2021-05-30 12:01:13
我对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”文件夹作为我的工作目录的子文件夹!
查看完整描述

2 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

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

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

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


查看完整回答
反对 回复 2021-06-01
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

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


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/ 移动到 /resources/。


查看完整回答
反对 回复 2021-06-01
  • 2 回答
  • 0 关注
  • 309 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信