David Ransier wrote:

>I've never written a binary parser before, so I'm looking for some starting
>point.
>
>I want to read an image file (Sun Raster format: RAS) and parse the included
>color map, writing the color map as a text file (possible CSV format).
>
>I can open the file in "rb" mode and read a certain number of bytes. But
>when I try to do something with the value, Python complains that it's not in
>the correct format.
>
>Here is some sample code for reading the file (Magic is a 4-byte ID that
>identifies the file as RAS format.)
>
>
>
>
>import sys
>
>infile =       "TestImage.ras"
>try:
>       FH = open(infile, 'rb')
>except IOError, eStr:
>       print "ERROR: Cannot open ", infile, " for reading: ", eStr
>       sys.exit()
>
>       Magic = FH.read(4)
>       print "Magic:  %d" % (Magic)
>
>
>
>
>I tried coercing Magic to an int, but that didn't help.
>
Well, this certainly isn't Win32 specific but what the heck. When you 
read data from a file it is *always* a string. In order to take this 
binary data and turn it into other things (like strings) you'll want to 
use the struct module. In the above case you could write:

Magic = struct.unpack("i", FH.read(4))[0]

-- 
Jens B. Jorgensen
[EMAIL PROTECTED]


_______________________________________________
ActivePython mailing list
[EMAIL PROTECTED]
http://listserv.ActiveState.com/mailman/listinfo/activepython

Reply via email to