time.strftime('%m-%d-%Y %H:%m:%S') to log is out of order

MRAB python at mrabarnett.plus.com
Tue Jul 21 18:04:39 EDT 2009


davidj411 wrote:
> On Jul 21, 5:29 pm, Simon Forman <sajmik... at gmail.com> wrote:
>> On Jul 21, 5:00 pm, davidj411 <davidj... at gmail.com> wrote:
>>
>>
>>
>>
>>
>>> I am using a recursive function to print the time and a few other
>>> things on each pass. ( the function calculates size of file that is
>>> being transferred and if not 100 % copied, it waits 20 secs and checks
>>> again).
>>> i would expect the time to be correct anytime it is used:
>>> <--code below -->>
>>> print time.strftime('%m-%d-%Y %H:%m:%S')
>>> <--code above -->>
>>> here is an example of what i am seeing:
>>> 16:07:16
>>> 16:07:36
>>> 16:07:56
>>> 16:07:16
>>> 16:07:36
>>> 16:07:56
>>> 16:07:16
>>> 16:07:36
>>> 16:07:56
>> Your output doesn't match your format string:
>>
>> In [1]: import time
>>
>> In [2]: print time.strftime('%m-%d-%Y %H:%m:%S')
>> 07-21-2009 17:07:16
>>
>> There's no way to tell why your output times seem to repeat without
>> seeing the code that surrounds your "print time.strftime('%m-%d-%Y %H:
>> %m:%S')" line.
> 
> sorry, yes, i did manually filter the output.
> 
> here is the function:
> 
> def log_out(msg,servername='std.out'):
> 	print msg
> 	open(log_dir + '\\' + servername + ".log",'a').write(servername + "-"
> + time.strftime('%m-%d-%Y %H:%M:%S') + " " + msg+'\n')
> 
> on each pass, it should output the newer time (whether recursive or
> not, right) ?

Maybe it does, but you were outputting the month ("07") instead of the
minutes; the seconds were changing.



More information about the Python-list mailing list