Timer pokazuje ujemny czas, który upłynął

Używam dość prostego kodu do zmiany czasu każdej pętlifor komunikat. Wygląda to mniej więcej tak:

import time

for item in list_of_files:

    # Start timing this loop.
    start = time.clock()

    # Do a bunch of stuff.

    # Get time elapsed in seconds.
    elapsed = time.clock() - start

    # Get minutes and seconds.
    m, s = divmod(elapsed, 60)

    # Print result.
    print 'End of analysis for %s in %dm %02ds.\n'% (item, m, s)

W większości przypadków spowoduje to uzyskanie prawidłowych wyników9m 52s ale czasami z dużymi pętlami (to zajmuje trochę czasu) otrzymuję negatywne wyniki-53m 17s.

Nie mogę wskazać wyraźnego limitu, w którym wyniki zaczynają być wyświetlane jako wartości ujemne, ale najwyraźniej zdarzają się tylko dla czasów, które upłynęły> 20 min, ale nie dlakażdy pętla, która trwała> 20 minut (tj. nie jest spójna).

Czy w moim kodzie jest coś, co powoduje, że każda pętla powoduje to?

Dodaj

używamSpyder jako moje IDE. Porównałem jaktime.clock() zachowywał się vstime.time() i to właśnie widzę:

>>> st1, st2 = time.clock(), time.time()
>>> st1,st2
(507.65, 1374502193.357196)
>>> print time.clock()-st1, time.time()-st2
0.14 15.1921429634
>>> print time.clock()-st1, time.time()-st2
0.34 35.0087578297
>>> print time.clock()-st1, time.time()-st2
0.67 69.8715758324
>>> print time.clock()-st1, time.time()-st2
0.77 80.0557789803
>>> print time.clock()-st1, time.time()-st2
1.25 130.559605837
>>> print time.clock()-st1, time.time()-st2
3.02 309.845729828
>>> print time.clock()-st1, time.time()-st2
8.9 899.936934948

Nie powinienemtime.clock() zwrócić czas, który upłynął w sekundach? Thetime.time() wywołanie zapewnia dokładne śledzenie upływu czasu w sekundach (na przykład ostatnie połączenie zostało wykonane po upływie 15 minut, co odpowiada 900 sekundom), ale nie mam pojęcia, cotime.clock() to robi.

questionAnswers(2)

yourAnswerToTheQuestion