On Tuesday, Jan 13th 2009 at 11:39 -0000, quoth Shawn O'Shea:

=>time.time() returns the number of seconds since the epoch, so end-start
=>should be the number of seconds of execution. For example, given the
=>following program timetest.py:
=>import time
=>
=>start=time.time()
=>
=>time.sleep(5)
=>
=>end=time.time()
=>
=>print end-start
=>
=>The output should very close to 5 seconds (with some overhead for the
=>recording of start and end).
=>$ python timetest.py
=>5.00017285347
=>
=>If you are doing timing of code, you may also want to consider the timeit
=>module (part of the standard library):
=>http://docs.python.org/library/timeit.html
=>
=>-Shawn
=>
=>
=>On Tue, Jan 13, 2009 at 10:41 AM, Paul Lussier <p.luss...@comcast.net>
=>wrote:
=>      "Thomas Charron" <twaf...@gmail.com> writes:
=>
=>      >   Example:
=>      >
=>      >>>> strftime("HH:MM:SS ", localtime())
=>      > '14:17:15'
=>
=>Ah, I see.  So, if I do this:
=>
=> >>> begin = time.time()
=> [... long wait here ... ]
=> >>> end = time.time()
=> >>> time.strftime("%H:%M:%S", time.localtime(end - begin))
=> '19:16:07'
=>
=>so, the MM:SS are correct, but the 19 for hours is incorrect.  It
=>should be 00, because "long wait here" was 16:07.
=>
=> >>> end - begin
=> 967.31416082382202
=> >>> time.localtime(end - begin)
=> (1969, 12, 31, 19, 16, 7, 2, 365, 0)
=>
=>So far, it seems my best bet is to do the math on the difference
=>between end, begin myself; something like this:
=>
=> def ElapsedTime (time):
=>     """Convert a float into HH:MM:SS string"""
=>
=>     days = time / 60 / 60 / 24
=>
=>     if days < 1:
=>        days = 0
=>
=>     mins = int(time / 60)
=>     if mins > 60:
=>         hours = int(mins / 60)
=>         mins = int(time % 60)
=>     else:
=>         hours = 0
=>
=>     secs = int(((time % 60) - int(mins)) * 60)
=>
=>     days  = (days  < 10) and ("0%s" % days)  or days
=>     hours = (hours < 10) and ("0%s" % hours) or hours
=>     mins  = (mins  < 10) and ("0%s" % mins ) or mins
=>     secs  = (secs  < 10) and ("0%s" % secs ) or secs
=>
=>     return "%s:%s:%s:%s" % (days, hours, mins, secs)
=>
=>I'm certainly appreciative of better ways to do this :)
=>
=>Thanks.

Guys, don't use time! Use the datetime interface I previously described. That's what it was made for. :-)

#! /usr/bin/python
import datetime
import time

then = datetime.datetime.now()
print "then = ", then

time.sleep(5)

now = datetime.datetime.now()
print "now  = ", now

print "Elapsed = ", now - then


--
steveo at syslang dot net TMMP1 http://frambors.syslang.net/
Do you have neighbors who are not frambors? Steven W. Orr
_______________________________________________
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/

Reply via email to