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
I assume month, day and year are actually being output and that you've
removed it from your post.
Err, what else do you expect to happen if you're doing this
recursively?
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.
>d> I am using a recursive function to print the time and a few other
>d> things on each pass. ( the function calculates size of file that is
>d> being transferred and if not 100 % copied, it waits 20 secs and checks
>d> again).
>d> i would expect the time to be correct anytime it is used:
>d> <--code below -->>
>d> print time.strftime('%m-%d-%Y %H:%m:%S')
>d> <--code above -->>
>d> here is an example of what i am seeing:
>d> 16:07:16
>d> 16:07:36
>d> 16:07:56
>d> 16:07:16
>d> 16:07:36
>d> 16:07:56
>d> 16:07:16
>d> 16:07:36
>d> 16:07:56
You probably meant: print time.strftime('%m-%d-%Y %H:%M:%S')
--
Piet van Oostrum <pi...@cs.uu.nl>
URL: http://pietvanoostrum.com [PGP 8DAE142BE17999C4]
Private email: pi...@vanoostrum.org
Good spot!
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.
>d> here is the function:
>d> def log_out(msg,servername='std.out'):
>d> print msg
>d> open(log_dir + '\\' + servername + ".log",'a').write(servername + "-"
>d> + time.strftime('%m-%d-%Y %H:%M:%S') + " " + msg+'\n')
>d> on each pass, it should output the newer time (whether recursive or
>d> not, right) ?
How come your strftime is now different from the first posting? Are you
cheating?
If you want to ask a question about why your code is not working
properly there are a few important rules:
1. Copy and paste your code, and at least all relevant stuff (preferably
a minimal example that shows the problem). *DO NOT RETYPE THE CODE*
2. Copy and paste the output. *DO NOT RETYPE THE OUTPUT*
3. Tell what the expected or desired output is.
--
Piet van Oostrum <pi...@cs.uu.nl>
URL: http://pietvanoostrum.com [PGP 8DAE142BE17999C4]
Private email: pi...@vanoostrum.org
Well, as Piet van Oostrum pointed out, your problem in the first code
you posted was that you used '%m' rather than '%M' for the minutes.
(Good eye Van Oostrum!) But now in this function you seem to have the
correct '%M' field. Are you still having the same output after
changing that?
In any event, here's a rewritten version of that function that's a
little cleaner, FWIW.
from os.path import join
from time import strftime
format = '%m-%d-%Y %H:%M:%S'
def log_out(msg, servername='std.out'):
print msg
msg = "%s - %s %s\n" % (servername, strftime(format), msg)
log_file = open(join(log_dir, servername + ".log"), 'a')
try:
log_file.write(msg)
finally:
log_file.close()
But why not just use the logging module?
i assume this link is what you refering to:
http://docs.python.org/library/logging.html
thanks for the helpful info. i think "Piet van Oostrum" has resolved
my issue. good eyes!
>d> i never heard of the logging module, but this function seemed simple
>d> enough.
>d> i assume this link is what you refering to:
>d> http://docs.python.org/library/logging.html
>d> thanks for the helpful info. i think "Piet van Oostrum" has resolved
>d> my issue. good eyes!
Without glasses I wouldn't have noticed it :=)
> i think "Piet van Oostrum" has resolved my issue.
> good eyes!
Well, he *is* Dutch...
-Ben