[Numpy-tickets] [NumPy] #995: numpy.load can't handle gzip file handles
NumPy
numpy-tickets@scipy....
Tue Feb 3 09:14:32 CST 2009
#995: numpy.load can't handle gzip file handles
---------------------------+------------------------------------------------
Reporter: MatthewMiller | Owner: somebody
Type: enhancement | Status: new
Priority: normal | Milestone: 1.3.0
Component: numpy.lib | Version: none
Severity: normal | Keywords:
---------------------------+------------------------------------------------
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)
}}}
Turns out you can't rewind gzip file handles in Python. Oops. The
offending code is that which distinguishes between npy and npz files.
Could there maybe be something added to just trust me that it's an npy?
If I use numpy.lib.format.read_array() directly, there's no problem.
--
Ticket URL: <http://www.scipy.org/scipy/numpy/ticket/995>
NumPy <http://projects.scipy.org/scipy/numpy>
The fundamental package needed for scientific computing with Python.
More information about the Numpy-tickets
mailing list