我有一个文件目录中非常复杂的项目。
project/
scripts/
scriptA.py
...
data/
A.csv
...
scripts\
中的文件将修改data\
中的内容。实际结构是一个更嵌套和更复杂的结构。由于我要分别测试每个文件,因此目前可以正常工作,但是我想在根目录中包含一个run.py
,它将在所有相关脚本中运行。
但是,scriptA.py
等都是用相对路径编写的,例如../data/A.csv
,这意味着run.py
将不会运行。最好的方法是什么?我已经研究过Python的__file__
,但仍不确定如何将其用于我的目的。
答案 0 :(得分:0)
如果您使用的是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 docs以获得更多信息。