首頁 >後端開發 >Python教學 >如何可靠取得目前執行的Python腳本的路徑?

如何可靠取得目前執行的Python腳本的路徑?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-26 18:30:03951瀏覽

How Can I Reliably Get the Path of the Currently Executing Python Script?

在Python中尋找目前執行檔的路徑

在Python中取得目前執行腳本的路徑對於存取檔案和執行腳本至關重要執行各種操作。然而,在某些條件下,幾種方法可能會失敗。本文探討了在各種場景下檢索文件路徑的可靠方法。

現有方法的挑戰

常用方法,如os.path.abspath(os. path.dirname(sys.argv[0])) 和os. path.abspath(os.path.dirname(__file__)) 有限制。從另一個 Python 腳本執行時,sys.argv[0] 可能無法提供正確的路徑,而 __file__ 在 py2exe 腳本、IDLE、Mac OS X 環境和類似實例中可能不可用。

通用解決方案

要解決這些問題,一個可靠的方法是利用inspect和os模組:

<code class="python">from inspect import getsourcefile
from os.path import abspath</code>

使用getsourcefile(lambda :0),你可以得到原始檔案目前執行的lambda 函數,有效繞過其他方法的限制。然後使用abspath提取路徑。

示例場景

考慮以下目錄結構:

C:.
|   a.py
\---subdir
        b.py

a.py 包含:

<code class="python">from inspect import getsourcefile
from os.path import abspath

print("a.py: File Path =", abspath(getsourcefile(lambda:0)))
execfile("subdir/b.py")</code>

b.py 包含:

<code class="python">from inspect import getsourcefile
from os.path import abspath

print("b.py: File Path =", abspath(getsourcefile(lambda:0)))</code>

運行a.py 應顯示:

a.py: File Path = C:\a.py
b.py: File Path = C:\subdir\b.py

This演示了在各種情況下正確獲取文件路徑的能力。

以上是如何可靠取得目前執行的Python腳本的路徑?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn