【发布时间】:2019-07-01 20:04:26
【问题描述】:
我有一个文件目录非常复杂的项目。
project/
scripts/
scriptA.py
...
data/
A.csv
...
scripts\ 中的文件将修改data\ 中的内容。实际的结构是更加嵌套和复杂的。这目前工作正常,因为我正在单独测试每个文件,但我想在根目录中包含一个run.py,它将运行所有相关脚本。
但是,scriptA.py 等都是用 ../data/A.csv 这样的相对路径编写的,这意味着 run.py 不会运行。解决此问题的最佳方法是什么?我已经查看了 Python 的 __file__,但我仍然不确定如何将它用于我的目的。
【问题讨论】:
-
如果在根目录下,../../data/abc.csv 应该可以工作或将 script/ 添加到您的路径
import sys.path.insert(0,'/path/to/script') -
@PraysonW.Daniel 我是否必须为每个脚本都这样做?我是在开始时一次性完成,还是包括在内,运行相应的脚本并重复?
-
这取决于您的用例。如果您希望在根目录下的所有脚本中都有它,那么我会做一些不同的事情。我会创建一个
__init__.py文件st root 并导入所有必要的路径。这意味着我不必更改我的 run.py,因为所有路径都在初始化中加载。