On Jan 28, 1:48 pm, Grant Edwards <[EMAIL PROTECTED]> wrote: > On 2008-01-28, PurpleServerMonkey <[EMAIL PROTECTED]> wrote: > > > Having trouble working out an appropriate format string for packing a > > binary file. > > > The below is something I use for ASCII files but now I need something > > equivalent for working with binary files i.e jpg, zips etc. > > > fileHandle = open("test.txt") > > > while loop: > > fileBuffer = fileHandle.read(512) > > format = "!hh%dc" % len(fileBuffer) > > outdata = struct.pack(format, *fileBuffer) > > Assuming fileBuffer has 512 bytes in it, your format string is > going to be "!hh512c". When struct.pack sees that, it expects > 514 values to pack. You're only passing it 512. What data do > you want to be packed into the two "h" fields? > > You're also wasting a lot of CPU time unpacking and then > repacking the 512 bytes in filebufffer. I suspect what you > want is: > > val1 = ??? > val2 = ??? > outdata = format.struct("!hh", val1, val2) + fileBuffer > > I don't know what val1 and val2 are supposed to be, since the > values that are to be packed as the two "h" fields seems to be > missing from your example code. > > -- > Grant
Thanks Grant, Yeah I left out the two 'h' values by mistake but your suggestion worked out really well. -- http://mail.python.org/mailman/listinfo/python-list