91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python多模塊引用由此引發的相對路徑混亂問題怎么解決

發布時間:2023-03-09 15:56:55 來源:億速云 閱讀:168 作者:iii 欄目:開發技術

這篇文章主要介紹“Python多模塊引用由此引發的相對路徑混亂問題怎么解決”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Python多模塊引用由此引發的相對路徑混亂問題怎么解決”文章能幫助大家解決問題。

    多模塊引用由此引發的相對路徑混亂

    當不同層級的 Python 模塊相互調用時,我們會發現原本在一個模塊中寫死的相對路徑會導致找不到文件的報錯。

    這種問題該怎么解決呢?

    先說結論

    復制下面的代碼, 放到你的模塊內 (或者保存為一個 .py 文件), 調用 relpath 函數即可.

    def relpath(file):
        """ Always locate to the correct relative path. """
        from sys import _getframe
        from pathlib import Path
        frame = _getframe(1)
        curr_file = Path(frame.f_code.co_filename)
        return str(curr_file.parent.joinpath(file).resolve())

    運行效果

    Python多模塊引用由此引發的相對路徑混亂問題怎么解決

    特點

    • 不到 10 行代碼

    • 無第三方庫依賴

    • 使用簡單, 只需把原先寫死的相對路徑, 替換為 relpath({之前寫的路徑}) 即可

    • 此外, Pycharm 還能夠識別到文件參數, 在你鍵入時自動給出路徑提示

    Python多模塊引用由此引發的相對路徑混亂問題怎么解決

    更復雜的情況演示

    someprj
    |- relpath.py
    |- A
        |- a.py
        |- AA
            |- aa.py
            |- AAA
                |- aaa.py
    |- B
        |- b.txt
    # A/a.py
    def show_path():
        from relpath import relpath
        print(relpath('../B/b.txt'))
    
    if __name__ == '__main__':
        from A.AA import aa
        from A.AA.AAA import aaa
        show_path()  # -> '/someprj/B/b.txt'
        aa.show_path()  # -> '/someprj/B/b.txt'
        aaa.show_path()  # -> '/someprj/B/b.txt'
    
    
    # A/AA/aa.py
    def show_path():
        from relpath import relpath
        print(relpath('../../B/b.txt'))
    
    if __name__ == '__main__':
        from A import a
        from A.AA.AAA import aaa
        show_path()  # -> '/someprj/B/b.txt'
        a.show_path()  # -> '/someprj/B/b.txt'
        aaa.show_path()  # -> '/someprj/B/b.txt'
    
    
    # A/AA/AAA/aaa.py
    def show_path():
        from relpath import relpath
        print(relpath('../../../B/b.txt'))
    
    if __name__ == '__main__':
        from A import a
        from A.AA import aa
        show_path()  # -> '/someprj/B/b.txt'
        a.show_path()  # -> '/someprj/B/b.txt'
        aa.show_path()  # -> '/someprj/B/b.txt'

    關于“Python多模塊引用由此引發的相對路徑混亂問題怎么解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    城口县| 茂名市| 三穗县| 惠东县| 石棉县| 万荣县| 中超| 巴里| 平凉市| 墨竹工卡县| 新巴尔虎左旗| 南京市| 大庆市| 建昌县| 达日县| 易门县| 曲水县| 张家港市| 盐山县| 潼关县| 长泰县| 北京市| 威远县| 铜陵市| 河南省| 石泉县| 饶阳县| 塔河县| 恩施市| 四川省| 子长县| 白河县| 泾源县| 泸水县| 陕西省| 天门市| 明水县| 台中县| 新蔡县| 苏尼特右旗| 武川县|