在 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