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())