On May 3, 2015, at 10:22, Cecil Westerhof wrote: > For testing I want my messages time stamped like:
For progress reporting, I often use the module below (eta.py), which also gives a projected time of completion: import datetime, time, sys etastart = 0 def eta(done, total, s, reportinterval=100, datetimeformat="%d %b %H:%M:%S"): global etastart if done == 0: etastart = datetime.datetime.now() if not done % reportinterval: noww = datetime.datetime.now() prtnow = noww.strftime(datetimeformat) if done: if not isinstance(etastart, datetime.datetime): raise RuntimeError("You should call eta() at least once with done=0") elapsed = noww - etastart secsperitem = float(elapsed.seconds) / done totalsecs = secsperitem * total eta = etastart + datetime.timedelta(0, totalsecs) prteta = eta.strftime(datetimeformat) msg = "now %s, eta %s (%d/%d) %s" % (prtnow, prteta, done, total, s) else: msg = "now %s (%d/%d) %s" % (prtnow, done, total, s) sys.stderr.write(msg + "\n") if __name__ == "__main__": for i in range(10): eta(i, 10, "idling for ten seconds", 1, "%H:%M:%S") time.sleep(1) -- "You can't actually make computers run faster, you can only make them do less." - RiderOfGiraffes -- https://mail.python.org/mailman/listinfo/python-list