summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
Diffstat (limited to 'numpy')
-rw-r--r--numpy/lib/io.py3
-rw-r--r--numpy/lib/tests/test_io.py8
2 files changed, 11 insertions, 0 deletions
diff --git a/numpy/lib/io.py b/numpy/lib/io.py
index d2c55172f..d425eccb5 100644
--- a/numpy/lib/io.py
+++ b/numpy/lib/io.py
@@ -48,6 +48,9 @@ def seek_gzip_factory(f):
def tell(self):
return self.offset
+ if isinstance(f, str):
+ f = gzip.GzipFile(f)
+
f.seek = new.instancemethod(seek, f)
f.tell = new.instancemethod(tell, f)
diff --git a/numpy/lib/tests/test_io.py b/numpy/lib/tests/test_io.py
index f545bfe34..d4f7f0e97 100644
--- a/numpy/lib/tests/test_io.py
+++ b/numpy/lib/tests/test_io.py
@@ -3,6 +3,7 @@ import numpy.ma as ma
from numpy.ma.testutils import *
import StringIO
+import gzip
from tempfile import NamedTemporaryFile
import sys, time
@@ -821,6 +822,13 @@ def test_gzip_load():
f = gzip.GzipFile(fileobj=s, mode="r")
assert_array_equal(np.load(f), a)
+def test_gzip_loadtxt():
+ f = NamedTemporaryFile(suffix='.gz')
+ g = gzip.GzipFile(fileobj=f)
+ g.write('1 2 3\n')
+ g.close()
+ f.seek(0)
+ assert_array_equal(np.loadtxt(f.name), [1, 2, 3])
if __name__ == "__main__":
run_module_suite()