Re: convert binary to float

2008-06-03 Thread Lie
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

2008-06-01 Thread Mason
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

2008-06-01 Thread George Sakkis
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

2008-06-01 Thread Mason
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

2008-06-01 Thread Mason
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

2008-06-01 Thread Mark Tolonen
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