如何让 Python 从该子模块的相对路径运行子模块?



我有一个在文件目录中很复杂的项目。

    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文档以获取更多信息。

相关内容

  • 没有找到相关文章

最新更新