[Numpy-discussion] numpy.load and gzip file handles

Stéfan van der Walt stefan at sun.ac.za
Mon Feb 2 01:01:54 EST 2009


2009/2/2 Matthew Miller <mattdm at mattdm.org>:
> I'd like to log the state of my program as it progresses. Using the
> numpy.save / numpy.load functions on the same filehandle repeatedly works
> very well for this -- but ends up making a file which very quickly grows to
> gigabytes. The data compresses well, though, so I thought I'd use Python's
> built-in gzip module underneath. This works great for saving -- but when it
> comes time to play back, there's an issue:
>
>  >>> import numpy
>  >>> import gzip
>  >>> f=open("test.gz")
>  >>> g=gzip.GzipFile(None,"rb",9,f)
>  >>> g
>  <gzip open file 'test.gz', mode 'r' at 0xbaad50 0xc0ab90>
>  >>> numpy.load(g)
>  Traceback (most recent call last):
>    File "<stdin>", line 1, in <module>
>    File "/usr/lib64/python2.5/site-packages/numpy/lib/io.py", line 133, in load
>      fid.seek(-N,1) # back-up
>  TypeError: seek() takes exactly 2 arguments (3 given)

The GzipFile in Python 2.5 does not support the 2nd ("whence")
argument.  The solution may be to use this wrapper from the EffBot:

http://effbot.org/librarybook/gzip-example-2.py

In order to "back-port" that functionality.

Regards
Stéfan



More information about the NumPy-Discussion mailing list