Python输出文件名以及代码行号,便于调试程序

我相信很多人在调试Python代码时都是print的重度使用者.我也曾想过学一学logging模块,但是粗略一看还是print好用啊.但是当时调试还行,隔一天,我就不知道是哪儿的print在输出这些信息了,我想删掉它们啊.于是乎,一个输出文件名以及行号的print就显得很有必要了.

Python获取当前文件名和行号

获取文件名

直接使用__file__变量即可,它指明了当前脚本的路径.

获取行号

使用sys._getframe().f_lineno,代表当前代码的行号

编写自己的print函数

我在Python路径中加入了自己的一个包,里面有我自己写的各种常用的函数,其中就包括如下的函数:

def debugPrinter(file, lineno, data=None):
    """
    输出带有文件名和行号的调试信息
    :param file: 对应__file__变量
    :param lineno: 对应sys._getframe().f变量
    :param data: 需要输出的信息
    :return:
    """
    fileName = file.split('/')[-1]
    lineno = lineno.f_lineno

    print(f'[{fileName} {lineno}] {data}')

输出效果如下

[BS_threadV3.py 130] iou: 1.0

这样,再也不担心以后找不到是哪里在输出信息了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章