在 Python 中獲取檔名和行號
Vaibhav Vaibhav
2022年5月17日
在處理實際應用程式或副專案時,我們經常需要檢索行號和檔名以進行除錯。通常,這樣做是為了瞭解何時執行什麼程式碼,或者分析任何應用程式的控制流。在本文中,我們將學習如何使用 Python 獲取 Python 指令碼的行號和檔名。
在 Python 中獲取檔名和行號
要從正在執行的 Python 指令碼中獲取檔名和行號,我們可以使用 Python 的 inspect
模組。inspect
模組包含幾個實用程式來獲取有關物件、類、方法、函式、框架物件和程式碼物件的資訊。這個庫有一個 getframeinfo()
方法,用於檢索有關框架或回溯物件的資訊。此方法接受一個 frame
引數,它檢索有關該引數的詳細資訊。currentFrame()
方法返回撥用者堆疊幀的幀物件。我們可以將這些實用程式用於我們的用例。請參考以下 Python 程式碼瞭解用法。
from inspect import currentframe, getframeinfo
frame = getframeinfo(currentframe())
filename = frame.filename
line = frame.lineno
print("Filename:", filename)
print("Line Number:", line)
輸出:
Filename: full/path/to/file/main.py
Line Number: 3
正如我們所見,filename
屬性將返回 Python 檔案的完整路徑。在我的例子中,Python 檔案的名稱是 main.py
;因此,它在輸出中顯示 main.py
。並且,lineno
屬性返回執行此 frame = getframeinfo(currentframe())
語句的行號。上述語句在 3
行執行;因此輸出在行號
標籤後有一個 3
。
Author: Vaibhav Vaibhav