識別目前執行的Python 腳本的路徑對於各種應用程式至關重要。然而,找到一種適用於不同場景的「通用」方法可能具有挑戰性。本文探討了幾種方法並解決了與之相關的局限性,最終提出了一個全面的解決方案。
path = os.path.abspath(os.path.dirname(__file__)):此方法在下列情況下可能無法運作:
要取得目前正在執行的檔案的路徑(無論執行上下文如何),可以使用檢查和os 模組中的函數組合:
from inspect import getsourcefile from os.path import abspath path = abspath(getsourcefile(lambda:0))
此解決方案提供了在各種場景下檢索來源檔案路徑的一致方法,包括:
考慮以下目錄結構:
C:. | a.py \---subdir b.py
a.py 中的程式碼:
#! /usr/bin/env python import os, sys print "a.py: os.getcwd()=", os.getcwd() print execfile("subdir/b.py")
subdir/b.py 中的程式碼:
#! /usr/bin/env python import os, sys print "b.py: os.getcwd()=", os.getcwd() print
python a.py 的輸出是:
a.py: os.getcwd()= C:\ b.py: os.getcwd()= C:\zzz
這表示os.getcwd() 反映了執行上下文的工作目錄,該目錄可能與正在執行的腳本的位置不同。相較之下,建議的解決方案 (abspath(getsourcefile(lambda:0))) 始終會產生腳本的來源檔案路徑,無論執行上下文為何。
以上是如何可靠地確定 Python 中執行檔的路徑?的詳細內容。更多資訊請關注PHP中文網其他相關文章!