是否可以制作一个打印下一行代码的方法?
def print_next_line():
sth
import fxx
print 'XXX'
print_next_line()
file.split('/')
....
>>> 'XXX'
>>> 'file.split('/')'
我在想它可能在堆栈的某个地方,但我不确定,因为它是下一个,而不是前一行。
答案 0 :(得分:2)
直接接近。我使用inspect
模块来确定调用print_next_line
的文件和行。后来我读了文件找到下一个字符串。你可能想在这里添加一些错误处理(如果文件中没有下一行怎么办?等等)
def print_next_line():
def get_line(f, lineno):
with open(f) as fp:
lines = fp.readlines()
return lines[lineno-1]
import inspect
callerframerecord = inspect.stack()[1]
frame = callerframerecord[0]
info = inspect.getframeinfo(frame)
line_ = info.lineno
file_ = info.filename
print get_line(file_, line_ + 1)
print 'XXX'
a = 1
print_next_line()
b = a*2
答案 1 :(得分:1)
您需要的只是profiling tool或debugger。
答案 2 :(得分:1)
使用Python的inspect
模块:
import inspect
def print_next_line():
lineno = inspect.currentframe().f_back.f_lineno
with open(__file__) as f:
print(f.readlines()[lineno].rstrip())
答案 3 :(得分:0)
你可以open()
你的.py文件并迭代找到特定的行,然后打印出来。