Python 是否可以打印代码中的下一行?
是否有可能生成一个方法来打印下一行代码Python 是否可以打印代码中的下一行?,python,string,stack,Python,String,Stack,是否有可能生成一个方法来打印下一行代码 def print_next_line(): sth import fxx print 'XXX' print_next_line() file.split('/') .... >>> 'XXX' >>> 'file.split('/')' 我想它可能在堆栈中的某个地方,但我不确定,因为它是下一行,而不是上一行。您需要的只是一个或只是一个。好的,您可以打开()您的.py文件并迭代找到特定的行,然后打印它。
def print_next_line():
sth
import fxx
print 'XXX'
print_next_line()
file.split('/')
....
>>> 'XXX'
>>> 'file.split('/')'
我想它可能在堆栈中的某个地方,但我不确定,因为它是下一行,而不是上一行。您需要的只是一个或只是一个。好的,您可以打开()
您的.py文件并迭代找到特定的行,然后打印它。直接方法。我使用模块确定调用print\u next\u line
的文件和行。稍后,我阅读该文件以查找下一个字符串。您可能想在这里添加一些错误处理(如果文件中没有下一行怎么办?等等)
使用Python的模块:
你为什么要这样做?@Alik这是为了调试。你能详细说明一下吗?@Alik我需要这个的时候有很多情况。例如,当我需要知道哪一行代码花费太多时间,或者脚本冻结在哪里时。好吧,有很多好的分析器可以用来确定哪一行代码花费太多时间。
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
import inspect
def print_next_line():
lineno = inspect.currentframe().f_back.f_lineno
with open(__file__) as f:
print(f.readlines()[lineno].rstrip())