Re: convert binary to float
On Jun 2, 2:55 am, Mason [EMAIL PROTECTED] wrote: I have tried and tried... I'd like to read in a binary file, convert it's 4 byte values into floats, and then save as a .txt file. This works from the command line (import struct); In [1]: f = open(test2.pc0, rb) In [2]: tagData = f.read(4) In [3]: tagData Out[3]: '\x00\x00\xc0@' I can then do the following in order to convert it to a float: In [4]: struct.unpack(f, \x00\x00\xc0@) Out[4]: (6.0,) But when I run the same code from my .py file: f = open(test2.pc0, rb) tagData = f.read(4) print tagData I get this (ASCII??): „@ I only know how to work with '\x00\x00\xc0@'. I don't understand why the output isn't the same. I need a solution that will allow me to convert my binary file into floats. Am I close? Can anyone point me in the right direction? Thanks, Mason Did you know that '\x00\x00\xc0@' is Python's representation for the '„@'. A print function calls str() first on what it's going to print, and thus the binary representation is converted into real characters (in the range of ASCII). If you've designed your code to process this representation, then you should call the repr() first, a better solution would be to design the code to process the binary directly, python knows how to work with it, like if you do a for-loop, it knows to fetch '\xc0' as one character instead of four. -- http://mail.python.org/mailman/listinfo/python-list
convert binary to float
I have tried and tried... I'd like to read in a binary file, convert it's 4 byte values into floats, and then save as a .txt file. This works from the command line (import struct); In [1]: f = open(test2.pc0, rb) In [2]: tagData = f.read(4) In [3]: tagData Out[3]: '\x00\x00\xc0@' I can then do the following in order to convert it to a float: In [4]: struct.unpack(f, \x00\x00\xc0@) Out[4]: (6.0,) But when I run the same code from my .py file: f = open(test2.pc0, rb) tagData = f.read(4) print tagData I get this (ASCII??): └@ I only know how to work with '\x00\x00\xc0@'. I don't understand why the output isn't the same. I need a solution that will allow me to convert my binary file into floats. Am I close? Can anyone point me in the right direction? Thanks, Mason -- http://mail.python.org/mailman/listinfo/python-list
Re: convert binary to float
On Jun 1, 3:55 pm, Mason [EMAIL PROTECTED] wrote: I have tried and tried... I'd like to read in a binary file, convert it's 4 byte values into floats, and then save as a .txt file. This works from the command line (import struct); In [1]: f = open(test2.pc0, rb) In [2]: tagData = f.read(4) In [3]: tagData Out[3]: '\x00\x00\xc0@' I can then do the following in order to convert it to a float: In [4]: struct.unpack(f, \x00\x00\xc0@) Out[4]: (6.0,) But when I run the same code from my .py file: f = open(test2.pc0, rb) tagData = f.read(4) print tagData I get this (ASCII??): „@ Remembering to put that struct.unpack() call in your module might help ;-) George -- http://mail.python.org/mailman/listinfo/python-list
Re: convert binary to float
On Jun 1, 6:41 pm, Dennis Lee Bieber [EMAIL PROTECTED] wrote: On Sun, 1 Jun 2008 12:55:45 -0700 (PDT), Mason [EMAIL PROTECTED] declaimed the following in comp.lang.python: I have tried and tried... I'd like to read in a binary file, convert it's 4 byte values into floats, and then save as a .txt file. This works from the command line (import struct); In [1]: f = open(test2.pc0, rb) In [2]: tagData = f.read(4) In [3]: tagData Interpreter display of raw object name uses repr() Out[3]: '\x00\x00\xc0@' I can then do the following in order to convert it to a float: In [4]: struct.unpack(f, \x00\x00\xc0@) Out[4]: (6.0,) But when I run the same code from my .py file: f = open(test2.pc0, rb) tagData = f.read(4) print tagData Display from a print statement uses str() I get this (ASCII??): „@ Probably not ASCII -- ASCII doesn't have that spanish (?) bottom row quote... And a pair of null bytes don't take up screen space. I only know how to work with '\x00\x00\xc0@'. I don't understand why the output isn't the same. I need a solution that will allow me to convert my binary file into floats. Am I close? Can anyone point me in the right direction? Why do you have to /see/ the byte representation in the first place... just feed the four bytes to the struct module directly. import struct fin = open(test2.pc0, rb) tagFloat = struct.unpack(f, fin.read(4))[0] print tagFloat -- WulfraedDennis Lee Bieber KD6MOG [EMAIL PROTECTED] [EMAIL PROTECTED] HTTP://wlfraed.home.netcom.com/ (Bestiaria Support Staff: [EMAIL PROTECTED]) HTTP://www.bestiaria.com/ Thanks Dennis, I'm OK now. I just sort of dropped the ball for a bit :). Mason -- http://mail.python.org/mailman/listinfo/python-list
Re: convert binary to float
On Jun 1, 5:12 pm, George Sakkis [EMAIL PROTECTED] wrote: On Jun 1, 3:55 pm, Mason [EMAIL PROTECTED] wrote: I have tried and tried... I'd like to read in a binary file, convert it's 4 byte values into floats, and then save as a .txt file. This works from the command line (import struct); In [1]: f = open(test2.pc0, rb) In [2]: tagData = f.read(4) In [3]: tagData Out[3]: '\x00\x00\xc0@' I can then do the following in order to convert it to a float: In [4]: struct.unpack(f, \x00\x00\xc0@) Out[4]: (6.0,) But when I run the same code from my .py file: f = open(test2.pc0, rb) tagData = f.read(4) print tagData I get this (ASCII??): „@ Remembering to put that struct.unpack() call in your module might help ;-) George Wow ... I did have it in there, but I forgot include it in my post. Anyway, this works just fine: f = open(test2.pc0, rb) tagData = f.read(4) print struct.unpack(f, tagData) Thanks for waking me up George! -- http://mail.python.org/mailman/listinfo/python-list
Re: convert binary to float
George Sakkis [EMAIL PROTECTED] wrote in message news:829b1e8f-baac-4ff4-909b-[EMAIL PROTECTED] On Jun 1, 3:55 pm, Mason [EMAIL PROTECTED] wrote: I have tried and tried... I'd like to read in a binary file, convert it's 4 byte values into floats, and then save as a .txt file. This works from the command line (import struct); In [1]: f = open(test2.pc0, rb) In [2]: tagData = f.read(4) In [3]: tagData Out[3]: '\x00\x00\xc0@' I can then do the following in order to convert it to a float: In [4]: struct.unpack(f, \x00\x00\xc0@) Out[4]: (6.0,) But when I run the same code from my .py file: f = open(test2.pc0, rb) tagData = f.read(4) print tagData I get this (ASCII??): „@ Remembering to put that struct.unpack() call in your module might help ;-) George tagData still contains your data, but it is being displayed two different ways. Consult the documentation about str() and repr(). -Mark -- http://mail.python.org/mailman/listinfo/python-list