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

2024-06-02 08:52:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个项目,文件目录非常复杂

    project/
        scripts/
            scriptA.py
            ...
        data/
            A.csv
            ...

scripts\中的文件将修改data\中的内容。实际的结构是一个更加嵌套和复杂的结构。由于我正在分别测试每个文件,因此目前这项工作正常,但我希望在根目录中包含一个run.py,它将运行所有相关脚本

但是,scriptA.py等等都是用相对路径写入的,比如../data/A.csv,这意味着run.py不会运行。最好的办法是什么?我已经研究了Python的__file__,但我仍然不确定如何将其用于我的目的


Tags: 文件csv项目runpyproject脚本内容
1条回答
网友
1楼 · 发布于 2024-06-02 08:52:15

如果您使用的是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

相关问题 更多 >