簡體   English   中英

如何讓Python從該子模塊的路徑運行子模塊以獲得相對路徑?

[英]How to get Python to run a submodule from that submodule's path for relative paths?

我有一個在文件目錄中非常復雜的項目。

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

scripts\\的文件將修改data\\ 實際結構是一個更嵌套和更復雜的結構。 由於我要分別測試每個文件,因此當前效果很好,但是我想在根目錄中包含一個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文檔以獲取更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM