2 回答
TA贡献1828条经验 获得超4个赞
os.getcwd
返回进程的当前工作目录(可能是所在目录startApp.sh
或其他目录,取决于 PyCharm 的运行配置设置,或者,如果从命令行启动程序,则是执行命令的目录) .
要使路径独立于当前工作目录,您可以获取 Python 文件所在的目录并从中构建路径:
os.path.dirname(__file__) + "/resources/a_reqs.csv"
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/。
添加回答
举报