2016-02-11 3 views
0

im using Python v2.x на Windows 64bitВычислить временной интервал в Python

Я хотел бы записать два момента в реальном времени и рассчитать временной интервал. Пожалуйста, смотрите код следующим образом:

current_time1 = datetime.datetime.now().time() # first moment 

# ... some statement...some loops...take some time... 

current_time2 = datetime.datetime.now().time() # second moment 

time_span = current_time1 - current_time2 

Видимо, последняя строка не является исполняемым, поскольку current_time не целое число, поэтому мой вопрос, как преобразовать это заявление в целое делать математику? Преобразовать секунд моя первая мысль ...

+3

Уже ответил: [DateTime пример] (http://stackoverflow.com/questions/766335/python-speed-testing-time-difference-milliseconds) и там [timeit пример] (HTTP: // stackoverflow.com/questions/7370801/measure-time-elapsed-in-python) – erhesto

ответ

3
current_time1 = datetime.datetime.now() 
time.sleep(50) 
current_time2 = datetime.datetime.now() 

print (current_time2 - current_time1) 

или альтернативно

time1 = time.time() 
time.sleep(50) 
time2 = time.time() 
print("%s seconds"%(time2-time1)) 
+0

Упс, получена ошибка: TypeError: неподдерживаемый тип операндов для -: 'datetime.time' и datetime.time –

+0

нет ' datetime.time' в моем ответе ... вы явно не копировали и вставляли его ... –

+0

Ницца, теперь он работает! Спасибо, Джоран. –

1
import time 

current_time1 = time.clock() 
do_something() 
current_time2 = time.clock() 
print "%.2gs" % (current_time2-current_time1) 

EDIT:

from datetime import datetime, date 

datetime.combine(date.today(), current_time2) - datetime.combine(date.today(), current_time1) 
+0

упс, получил ошибку: TypeError: неподдерживаемый тип операнда (ов) для -: 'datetime.time' и datetime.time –

+0

Попробуйте это: 'от даты и времени импорта DateTime, дата datetime.combine (date.today (), current_time2) - datetime.combine (date.today(), current_time1) ' – PRVS

+0

Код на редактировании ответа – PRVS

1

Вычитание один datetime.datetime.now() от другого дает вам datetime.timedelta экземпляр. Если вы запустите dir(), вы, скорее всего, найдете некоторые полезные функции.

>>> x = datetime.datetime.now() 
# wait a second or two or use time.sleep() 
>>> y = datetime.datetime.now() 
>>> z = y - x 
>>> type(z) 
<type 'datetime.timedelta'> 
>>> print(list(filter(lambda x: not x.startswith("_"), dir(z)))) 
['days', 'max', 'microseconds', 'min', 'resolution', 'seconds', 'total_seconds'] 
>>> print(z.total_seconds()) 
2.31 
Смежные вопросы