Ich mag wirklich Paul McGuire's Antwort aber ich verwende Python 3. Also für diejenigen, die interessiert sind: hier ist eine Modifikation seiner Antwort, die mit Python 3 auf *nix funktioniert (ich nehme an, unter Windows, dass clock()
sollte stattdessen verwendet werden time()
):
#python3
import atexit
from time import time, strftime, localtime
from datetime import timedelta
def secondsToStr(elapsed=None):
if elapsed is None:
return strftime("%Y-%m-%d %H:%M:%S", localtime())
else:
return str(timedelta(seconds=elapsed))
def log(s, elapsed=None):
line = "="*40
print(line)
print(secondsToStr(), '-', s)
if elapsed:
print("Elapsed time:", elapsed)
print(line)
print()
def endlog():
end = time()
elapsed = end-start
log("End Program", secondsToStr(elapsed))
start = time()
atexit.register(endlog)
log("Start Program")
Wenn Sie dies nützlich finden, sollten Sie trotzdem seine Antwort anstelle dieser hoch bewerten, da er die meiste Arbeit geleistet hat ;).