我有一个在文件目录中很复杂的项目。
project/
scripts/
scriptA.py
...
data/
A.csv
...
scripts
中的文件将修改data
中的内容。实际结构是一个更嵌套和涉及的。由于我要分别测试每个文件,因此目前正常工作,但是我想在Root Directory中包含一个run.py
,该目录将通过所有相关脚本运行。
但是, scriptA.py
等都是用相对路径(例如 ../data/A.csv
(编写的,这意味着run.py
无法运行。最好的方法是什么?我已经研究了Python的__file__
,但我仍然不确定如何将其用于我的目的。
如果您使用的是python 3,我会这样做:
# This is scriptA.py
from pathlib import Path
script_a = Path(__file__)
scripts_dir = script_a.parent
project_dir = scripts_dir.parent
data_dir = project_dir / 'data'
a_csv = data_dir / 'A.csv'
with a_csv.open():
# Some work on the file
您可能实际上不会将其分解为这样的一堆不同的变量,我只是为了插图而做。查看Pathlib文档以获取更多信息。