In article <1db0d993-9d2d-46af-9ee8-69d9250dc...@googlegroups.com>, matt.doolittl...@gmail.com wrote:
> > Please post the *exact* code you're running. The code you posted > > earlier is obviously only a fragment of some larger program, so we can > > only guess what's happening. Assuming your program is in a file called > > "prog.py", run the following commands and copy-paste the output: > > > i cant run it that way. i tried using the python prompt in terminal but got > nothing. Why can't you run it that way? What does "got nothing" mean? Did you just get another shell prompt back with no output? Did your shell window close? Did the machine crash? I asked you to run these commands: > cat /etc/lsb-release > > uname -a > > python --version Did you run them? What output did you get? I know it seems silly, but it really is important that people know exactly what your environment is. The less information we have, the harder it is to figure out what's going on. > but here is all the code relevant to this issue: Well, you've got a lot of code there. What you want to do is reduce this down to the smallest possible amount of code which demonstrates the problem. I can't even begin to run your code here because I don't have gnuradio installed. It's almost certainly not necessary to demonstrate the problem (nor are posixpath, cPickle, wx, etc), but I can already see that as soon as I delete those, I'll run up against the next problem, which is that update() is a method of a class and I don't have the rest of that class. Let's take this one step at a time. You've got: self.logfile.write('%s\t'%(time.time())) which is apparently causing, "1388164053.18", to end up in your output file. The question is, why are there only two digits after the decimal place? Possible causes: 1) Your version of time.time() is returning a float which is only precise to the centisecond. 2) Your version of string's %s operator is only converting floats to two decimal places. 3) Your self.logfile.write() method is taking the string it was given and stripping off all the digits beyond two after the decimal point. All of those seem about equally unlikely, so just start to eliminate them one by one. What happens if you do: self.logfile.write("1388164053.183454") What happens if you do: t = time.time() self.logfile.write("str=%s, repr=%s", (str(t), repr(t))) what happens if you get rid of the whole self.logfile.write() thing and just use print? If you're working in some environment where stdout gets redirected somewhere that you can't find, bypass stdout completely: my_file = open("/tmp/foo", "w") print >> my_file, time.time() and then go look and see what got dropped into /tmp/foo. -- https://mail.python.org/mailman/listinfo/python-list