2013-09-20 4 views
1

В Python Как получить, какой блок скрипта запущен прямо сейчас, runtime?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() 

EDIT:

Мы держим выше, как это оправдать комментарии, приведенные;), однако ниже мы описываем наши вопросы более подробно.

A 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

Этот вопрос, кажется, очень трудно понять, для меня. Каков ваш ожидаемый результат? Что именно вы подразумеваете под «блоком сценария»? –

+0

Я не понимаю. – Paco

+0

Ваш вопрос нереальный. «Итак, чтобы знать (сообщать), что работает во втором 7-м, например». Сообщите, что? Второе 7-е из чего? Это не пример – Vorsprung

ответ

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' 

Чтобы использовать этот простой пример, запустить его запуска затем найти PID номер процесса из другой оболочки. Затем отправьте сигнал HUP процессу. Он напечатает текущий номер строки. См http://docs.python.org/2/library/inspect.html для списка других методов интроспекции исходных программ, которые могут быть использованы

fowia = узнать, где я, кстати :)

+0

Я боюсь, что 'signal.SIGHUP' + другие недоступны в Windows! Мы обновили теги. – Developer

Смежные вопросы