﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
84	cromp -- pythonic cromp	Fred T. Hamster	bugdock	"http://docs.python.org/py3k/tutorial/stdlib2.html

the byte packing stuff in the struct module looks perfect.

python is good with binary records?

11.3. Working with Binary Data Record Layouts¶

The struct module provides pack() and unpack() functions for working with variable length binary record formats. The following example shows how to loop through header information in a ZIP file without using the zipfile module. Pack codes ""H"" and ""I"" represent two and four byte unsigned numbers respectively. The ""<"" indicates that they are standard size and in little-endian byte order:

import struct

data = open('myfile.zip', 'rb').read()
start = 0
for i in range(3):                      # show the first 3 file headers
    start += 14
    fields = struct.unpack('<IIIHH', data[start:start+16])
    crc32, comp_size, uncomp_size, filenamesize, extra_size = fields

    start += 16
    filename = data[start:start+filenamesize]
    start += filenamesize
    extra = data[start:start+extra_size]
    print(filename, hex(crc32), comp_size, uncomp_size)

    start += extra_size + comp_size     # skip to the next header

"	new-feature	assigned	minor		feistymeow-octopus			cromp	
