在Python
如何获取正在运行的脚本块,运行时?
print a() #takes couple of seconds, 3s
print b() #takes couple of seconds, 3s
pass
print c() #takes couple of seconds, 4s
print d(), \
t,y,u,i,o #takes couple of seconds, 4s
print z
例如,要知道(报告)在第二个7日运行的内容。
report(7s): print c()
编辑:
我们保留上述内容,以证明给出的评论是合理的;)但是下面我们将更详细地描述我们的问题。
正在逐行执行Python
代码(或逐块更好地执行)。例如见:
code.py
中的:
for i in xrange(10000000): #assume this will take some seconds
pass
print 'something'
#another time consuming job
for j in xrange(10000000): #assume this will also take some seconds
pass
print 'another thing'
我们正在考虑设置一个时间线程,每隔5秒进行一次打印(即报告)我们在运行时代码中的位置。因此,每5秒钟打印执行期间发生的事情。
示例输出:
>>> 00:05 in progress: "for i in xrange(10000000):..."
>>> 00:10 in progress: "for i in xrange(10000000):..."
>>> 00:15 in progress: "for j in xrange(10000000):..."
...
答案 0 :(得分:1)
def fowia(signal, frame):
print frame.f_lineno
import signal
signal.signal(signal.SIGHUP, fowia)
for i in xrange(10000000):
for k in xrange(100000000):
pass
print 'something'
#another time consuming job
for j in xrange(10000000):
pass
print 'another thing'
要使用这个简单示例,请启动它,然后从另一个shell中找到该进程的pid号。然后向进程发送HUP信号。它将打印当前行号。有关可以使用的其他程序源内省方法的列表,请参阅http://docs.python.org/2/library/inspect.html
fowia =找出我的位置,顺便说一下:)