Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:h5py给出了OSError:Can';t读取数据(充气()失败),即使它';他以前打开过_Python_Python 3.x_Numpy_H5py - Fatal编程技术网

Python:h5py给出了OSError:Can';t读取数据(充气()失败),即使它';他以前打开过

Python:h5py给出了OSError:Can';t读取数据(充气()失败),即使它';他以前打开过,python,python-3.x,numpy,h5py,Python,Python 3.x,Numpy,H5py,Python 3.5。我在一个目录中有几百个.mat文件(版本7.3)。我正在遍历所有这些数据以提取数据的两个不同部分。我循环得到第一批数据,没有任何问题,但当我再次做完全相同的事情时,只提取了数据的不同部分,我得到以下错误: Traceback (most recent call last): File "v73_test.py", line 43, in <module> mrfs_data = extract.convert1simProteinComCountsI

Python 3.5。我在一个目录中有几百个.mat文件(版本7.3)。我正在遍历所有这些数据以提取数据的两个不同部分。我循环得到第一批数据,没有任何问题,但当我再次做完全相同的事情时,只提取了数据的不同部分,我得到以下错误:

Traceback (most recent call last):
  File "v73_test.py", line 43, in <module>
    mrfs_data = extract.convert1simProteinComCountsIntoDataFrame(path2mats)
  File "/home/oli/Downloads/PhD/wc/mg/version_73_stuff/functions_for_joshuas_matFiles/extract_matFile_data_v73.py", line 586, in convert1simProteinComCountsIntoDataFrame
    raw_data = getMatureProteinComplexs(path2mats, state_no)
  File "/home/oli/Downloads/PhD/wc/mg/version_73_stuff/functions_for_joshuas_matFiles/extract_matFile_data_v73.py", line 53, in getMatureProteinComplexs
    if len(np.array(state_file['ProteinComplex']['counts']).shape) == 3:
  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
  File "/home/oli/virtualenvs/standard_python3.5/lib/python3.5/site-packages/h5py/_hl/dataset.py", line 696, in __array__
    self.read_direct(arr)
  File "/home/oli/virtualenvs/standard_python3.5/lib/python3.5/site-packages/h5py/_hl/dataset.py", line 657, in read_direct
    self.id.read(mspace, fspace, dest, dxpl=self._dxpl)
  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
  File "h5py/h5d.pyx", line 181, in h5py.h5d.DatasetID.read
  File "h5py/_proxy.pyx", line 130, in h5py._proxy.dset_rw
  File "h5py/_proxy.pyx", line 84, in h5py._proxy.H5PY_H5Dread
OSError: Can't read data (inflate() failed)
回溯(最近一次呼叫最后一次):
文件“v73_test.py”,第43行,在
mrfs_data=extract.convert1将IMCOUNTMCOUNTSINTODataFrame(路径2Mats)
文件“/home/oli/Downloads/PhD/wc/mg/version_73_stuff/functions_joshuas_matFiles/extract_matFile_data_v73.py”,第586行,在convert1simProteinComCountsIntoDataFrame中
原始数据=GetMatureProteIncomplex(路径2Mats,状态编号)
文件“/home/oli/Downloads/PhD/wc/mg/version_73_stuff/functions_joshuas_matFiles/extract_matFile_data_v73.py”,第53行,在GetMatureProtectionComplex中
如果len(np.array(state_file['ProteinComplex']['counts']).shape)=3:
文件“h5py/_objects.pyx”,第54行,在h5py._objects.with_phil.wrapper中
文件“h5py/_objects.pyx”,第55行,在h5py._objects.with_phil.wrapper中
文件“/home/oli/virtualenvs/standard_python3.5/lib/python3.5/site packages/h5py/_hl/dataset.py”,第696行,在uuu数组中__
自读直接(arr)
文件“/home/oli/virtualenvs/standard_python3.5/lib/python3.5/site packages/h5py/_hl/dataset.py”,第657行,直接读取
self.id.read(mspace、fspace、dest、dxpl=self.\u dxpl)
文件“h5py/_objects.pyx”,第54行,在h5py._objects.with_phil.wrapper中
文件“h5py/_objects.pyx”,第55行,在h5py._objects.with_phil.wrapper中
文件“h5py/h5d.pyx”,第181行,位于h5py.h5d.DatasetID.read中
文件“h5py/_proxy.pyx”,第130行,在h5py._proxy.dset_rw中
文件“h5py/_proxy.pyx”,第84行,在h5py._proxy.h5py_h5py中
OSError:无法读取数据(充气()失败)

因此,文件确实存在并且可以访问,所以我唯一能想到的是数据已损坏,但如果是这种情况,我肯定无法从中提取任何数据?

我在这里回答了我自己的问题,因为网络上没有太多关于此错误的信息,我学到了一些东西,因此可能它会帮助某些人否则


因此,我意识到数据实际上已经损坏。我认为如果一个文件被破坏了,那么你将能够从中提取任何东西,但事实证明,在这种情况下,这不是真的,你唯一不能访问的是被破坏的特定位。根据对其他版本的.mat文件的经验,这并不是我所期望的,但现在我想到了这个版本实际上是什么,这似乎有点明显。

Python3.6。我遇到了类似的问题,因此我可以读取输出数据(2D SHETRAN水文模型中给定网格单元的数据),例如,直到第24个时间步:

 f['VARIABLES']['  6 srf_dep']['value'][0,0,24]

 Out[272]: -1.0
但是到了第240个时间步,我得到了同样的错误:

['VARIABLES']['  6 srf_dep']['value'][0,0,240]


 Traceback (most recent call last):

  File "<ipython-input-273-1f12011309c3>", line 1, in <module>
    f['VARIABLES']['  6 srf_dep']['value'][0,0,240]

  File "h5py\_objects.pyx", line 54, in h5py._objects.with_phil.wrapper

  File "h5py\_objects.pyx", line 55, in h5py._objects.with_phil.wrapper

  File "C:\Anaconda3\lib\site-packages\h5py\_hl\dataset.py", line 496, in __getitem__
    self.id.read(mspace, fspace, arr, mtype, dxpl=self._dxpl)

  File "h5py\_objects.pyx", line 54, in h5py._objects.with_phil.wrapper

  File "h5py\_objects.pyx", line 55, in h5py._objects.with_phil.wrapper

  File "h5py\h5d.pyx", line 181, in h5py.h5d.DatasetID.read

  File "h5py\_proxy.pyx", line 130, in h5py._proxy.dset_rw

  File "h5py\_proxy.pyx", line 84, in h5py._proxy.H5PY_H5Dread

 OSError: Can't read data (inflate() failed)
['VARIABLES']['6 srf_dep']['value'][0,0240]
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
f['VARIABLES']['6 srf_dep']['value'][0,0240]
文件“h5py\\u objects.pyx”,第54行,在h5py.\u objects.with\u phil.wrapper中
文件“h5py\\u objects.pyx”,第55行,在h5py.\u objects.with\u phil.wrapper中
文件“C:\Anaconda3\lib\site packages\h5py\\u hl\dataset.py”,第496行,在\uuu getitem中__
self.id.read(mspace、fspace、arr、mtype、dxpl=self.\u dxpl)
文件“h5py\\u objects.pyx”,第54行,在h5py.\u objects.with\u phil.wrapper中
文件“h5py\\u objects.pyx”,第55行,在h5py.\u objects.with\u phil.wrapper中
文件“h5py\h5d.pyx”,第181行,位于h5py.h5d.DatasetID.read中
文件“h5py\\u proxy.pyx”,第130行,在h5py.\u proxy.dset\u rw中
文件“h5py\\u proxy.pyx”,第84行,在h5py.\u proxy.h5py\u h5py中
OSError:无法读取数据(充气()失败)

我通过删除有问题的H5文件,重新打开IDE并再次运行来解决这个问题。感谢您的解决方案。

因此我意识到数据实际上已损坏。我认为如果一个文件被破坏了,那么你将能够从中提取任何东西,但事实证明,在这种情况下,这不是真的,你唯一不能访问的是被破坏的特定位。根据对其他版本的.mat文件的经验,这并不是我所期望的,但现在我想到了这个版本实际上是什么,这似乎有点明显。我是应该删除这个问题,还是应该自己回答,以防别人一开始觉得奇怪?尤其是因为互联网上没有太多关于这个错误的信息。。。