IOError:无法读取数据(无法打开目录)缺少gzip压缩fi

2024-05-23 14:20:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我以前从未使用过HDF5文件,为了开始使用,我收到了一些示例文件。我用h5py检查了所有的基础知识,查看了这些文件中的不同组,它们的名称、键、值等等。一切正常,直到我想查看保存在组中的数据集。我得到了它们的.shape.dtype,但是当我尝试通过索引访问一个随机值时(例如grp["dset"][0]),我得到了以下错误:

IOError                                   Traceback (most recent call last)
<ipython-input-45-509cebb66565> in <module>()
      1 print geno["matrix"].shape
      2 print geno["matrix"].dtype
----> 3 geno["matrix"][0]

/home/sarah/anaconda/lib/python2.7/site-packages/h5py/_hl/dataset.pyc in __getitem__(self, args)
    443         mspace = h5s.create_simple(mshape)
    444         fspace = selection._id
--> 445         self.id.read(mspace, fspace, arr, mtype)
    446
    447         # Patch up the output for NumPy

/home/sarah/anaconda/lib/python2.7/site-packages/h5py/h5d.so in h5py.h5d.DatasetID.read (h5py/h5d.c:2782)()

/home/sarah/anaconda/lib/python2.7/site-packages/h5py/_proxy.so in h5py._proxy.dset_rw (h5py/_proxy.c:1709)()

/home/sarah/anaconda/lib/python2.7/site-packages/h5py/_proxy.so in h5py._proxy.H5PY_H5Dread (h5py/_proxy.c:1379)()

IOError: Can't read data (Can't open directory)

我在h5py Google group上发布了这个问题,有人建议在我没有安装的数据集上可能有一个过滤器。但HDF5文件仅使用gzip压缩创建,据我所知,这应该是一个可移植的标准。
有人知道我可能会错过什么吗?我甚至在任何地方都找不到这个错误或类似问题的描述,文件,包括有问题的数据集,都可以用HDFView软件轻松打开。在

编辑
显然,发生此错误是因为,由于某种原因,gzip压缩过滤器在我的系统上不可用。如果我尝试使用gzip压缩创建一个示例文件,则会发生以下情况:

^{pr2}$

有人有这方面的经验吗?HDF5库和h5py包的安装似乎没有出问题。。。在


Tags: 文件数据inhomelibpackages错误site
3条回答

我也有类似的问题

$ python3 -c 'import h5py; f=h5py.File("file.h5"); d=f["FVC"][:,:]'                                                               

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper (/home/ilan/minonda/conda-bld/work/h5py/_objects.c:2696)
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper (/home/ilan/minonda/conda-bld/work/h5py/_objects.c:2654)
  File "/home/pinaultf/system/anaconda2/envs/deveg-dev/lib/python3.5/site-packages/h5py/_hl/dataset.py", line 482, in __getitem__
    self.id.read(mspace, fspace, arr, mtype, dxpl=self._dxpl)
  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper (/home/ilan/minonda/conda-bld/work/h5py/_objects.c:2696)
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper (/home/ilan/minonda/conda-bld/work/h5py/_objects.c:2654)
  File "h5py/h5d.pyx", line 181, in h5py.h5d.DatasetID.read (/home/ilan/minonda/conda-bld/work/h5py/h5d.c:3240)
  File "h5py/_proxy.pyx", line 130, in h5py._proxy.dset_rw (/home/ilan/minonda/conda-bld/work/h5py/_proxy.c:1869)
  File "h5py/_proxy.pyx", line 84, in h5py._proxy.H5PY_H5Dread (/home/ilan/minonda/conda-bld/work/h5py/_proxy.c:1517)
OSError: Can't read data (Can't open directory)

我在一个虚拟环境中遇到了这个问题,而在另一个虚拟环境中没有,即使h5py版本显然是相同的(2.6.0)。在

通过以下方式解决了这个问题:

^{pr2}$

我也有同样的问题。我用

import tables

现在一切正常

不能只是评论-声誉太低。在

我也有同样的问题,只需运行“conda update anaconda”,问题就消失了。在

相关问题 更多 >