El temporizador muestra el tiempo negativo transcurrido

Estoy usando un código bastante simple para sincronizar cada bucle en unfor declaración. Se ve algo como esto:

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)

Esto resultará la mayoría de las veces en resultados correctos como9m 52s pero a veces con bucles grandes (que llevan algo de tiempo) obtengo resultados negativos como-53m 17s.

No puedo identificar un límite claro donde los resultados comienzan a mostrarse como valores negativos, pero aparentemente solo ocurre por tiempos transcurridos> 20 min, pero no paracada bucle que tomó> 20 min (es decir, no es consistente).

¿Hay algo en mi código para sincronizar cada bucle que está causando esto?

Añadir

Estoy usandoSpyder como mi IDE. Comparé cómotime.clock() se comportó vstime.time() y esto es lo que veo:

>>> 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

No deberíatime.clock() devuelve el tiempo transcurrido en segundos? lostime.time() la llamada realiza un seguimiento preciso del tiempo transcurrido en segundos (por ejemplo, la última llamada se realiza después de que hayan transcurrido 15 minutos, lo que equivale a 900 segundos), pero no tengo idea de quétime.clock() está haciendo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta