I think you want to use the array module to read the data, and Numeric to crunch it. I worry a little about whether Python's storage allocator can handle that much data though, especially on a 32-bit machine if you're in fact using one. On a 64-bit machine things may be smoother.