[Level 2] How to display current line number in Python
If you want to display current line number for debug info.
You can import inspect to do that.
Another way is to parse inspect.stack()
e.g.
more info, please reference here.
Wish this helps. regards, Stanley Huang
You can import inspect to do that.
#!/bin/env python import inspect from inspect import currentframe, getframeinfo def getFilenameLineno(): frameinfo = getframeinfo(currentframe().f_back) return (frameinfo.filename, frameinfo.lineno) def lineno(): return inspect.currentframe().f_back.f_lineno def curr_filename_lineno(): return inspect.currentframe().f_back.f_code if __name__ == '__main__': print lineno() # skip line with comment print curr_filename_lineno() print '%s(#%s)' % getFilenameLineno() print lineno()
$ ./testLineno.py 16 <code object <module> at 0xb7509f50, file "/tmp/t.py", line 2> /tmp/testLineno.py(#20) 22
Another way is to parse inspect.stack()
e.g.
#!/bin/env python import inspect def t(): tt() def tt(): ttt() def ttt(): tttt() def tttt(): print inspect.stack() if __name__ == '__main__': t()
$ ./test.py [(<frame object at 0x18ff820>, '/tmp/t.py', 14, 'tttt', [' print inspect.stack()\n'], 0), (<frame object at 0x190d970>, '/tmp/t.py', 11, 'ttt', [' tttt()\n'], 0), (<frame object at 0x18fe0c0>, '/tmp/t.py', 8, 'tt', [' ttt()\n'], 0), (<frame object at 0x1924460>, '/tmp/t.py', 5, 't', [' tt()\n'], 0), (<frame object at 0x18c7f70>, '/tmp/t.py', 17, '<module>', [' t()\n'], 0)]
more info, please reference here.
Wish this helps. regards, Stanley Huang
Comments
Post a Comment