美文网首页
python获取当前或调用者文件名等信息的方法(全)

python获取当前或调用者文件名等信息的方法(全)

作者: 1024猿 | 来源:发表于2020-03-06 10:41 被阅读0次

    有时候打印调试信息时,希望获取当前文件名,有几种方法:

    一、获取当前文件名3种方法

    1.使用python文件默认的‘ file ’属性
    os.path.basename(__file__)

    2.使用sys.argv[0]
    os.path.basename(sys.argv[0])

    3.使用sys._getframe()
    os.path.basename(sys._getframe().f_back.f_code.co_filename)

    二、获取上级(调用者)文件名方法

    而有时候在封装log时,log.debug('this is msg')是在外部调用的,所以无法定位到具体输出最终lineno、function、filename,而这里刚好通过sys._getframe()来完成。
    1.获取当前文件的frame

    cur_frame = sys._getframe()
    cur_filename = os.path.basename(cur_frame.f_code.co_filename)
    cur_funcname = cur_frame.f_code.co_name
    cur_lineno = cur_frame.f_lineno
    
    print(cur_filename)
    print(cur_funcname)
    print(cur_lineno)
    

    2.获取调用者所在文件的frame

    back_frame = sys._getframe().f_back
    back_filename = os.path.basename(back_frame.f_code.co_filename)
    back_funcname = back_frame.f_code.co_name
    back_lineno = back_frame.f_lineno
    
    print(back_filename)
    print(back_funcname)
    print(back_lineno)
    

    好了,不管是当前文件还是调用者文件信息都能获取,且调用者可以不断的back逆推,根据业务需要而定。

    相关文章

      网友评论

          本文标题:python获取当前或调用者文件名等信息的方法(全)

          本文链接:https://www.haomeiwen.com/subject/jnsvrhtx.html