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