Расчет времени в Python (datetime.timedelta?) - PullRequest
9 голосов
/ 15 августа 2011

Я уверен, что для многих из вас это нобрейнер, но я на самом деле запутался во всем, что касается datetime.timedelta.По сути, я запускаю метку времени, когда запускаю startTime, а затем ставлю метку окончания процесса endTime, и я пытаюсь получить разницу в формате ЧЧ: ММ: СС, и мне не везет.

Я получаюэта ошибка, когда я печатаю endTime - startTime:

TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.time'

Отредактировано для включения окончательного результата:

startTime = datetime.now()
<... my looping process ...>
endTime = datetime.now()
calcdTime = endTime - startTime
print str(calcdTime)[:-4]

Это приводит к: H: MM: SS.MM (таким образом, удаляя последние4 символа от timedelta

Ответы [ 2 ]

10 голосов
/ 15 августа 2011

Используйте datetime вместо time.Вычитать одно время из другого бессмысленно без даты;Вы не можете просто предположить, что они в один и тот же день, и левый операнд стоит первым.

5 голосов
/ 15 августа 2011

В зависимости от того, что вы делаете с информацией, вы можете просто использовать time.time:

import time

starttime = time.time()

# do stuff

endtime = time.time()

elapsed = endtime - starttime
print elapsed

, которая даст вам истекшее время в секундах.Это часто более удобно, чем иметь timedelta.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...