On Tue, 10 Jan 2006, bill nieuwendorp wrote:
> I am trying to convert binary file to ascii > > here is the format spec > > steps = int 4 > value = int 4 > time = float 4 * steps Hi Bill, Ok, that structure seems fairly simple so far. > >>> import struct > >>> import string > >>> f = file('binary_file','rb') > >>> line = f.readline() ^^^^^^^^^^^^ Ah. Don't do this. *grin* If our file is binary, the only safe function we can use to read from such a file is read(). "newlines()" just shouldn't be a concept in binary files: using readline() on a binary file is a major no-no. Imagine what happens if your file only contains ten steps. As a hint: look at ord('\n'). You mentioned earlier that you're expecting an integer, an integer, and then a sequence of float. Don't count bytes if you can help it: let Python's struct.calcsize() do this for you. http://www.python.org/doc/lib/module-struct.html Your machine may align bytes differently than you might expect: it may be best to let the machine handle that for you. Best of wishes to you! _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor