Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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无法打开.h5文件_Python_Python 2.7_Hdf5_H5py - Fatal编程技术网

Python无法打开.h5文件

Python无法打开.h5文件,python,python-2.7,hdf5,h5py,Python,Python 2.7,Hdf5,H5py,我正试图打开一个HDF5文件,以便用python读取它,以便以后可以用它做更多的事情。运行程序读取文件时出错。计划如下: import h5py # HDF5 support import numpy fileName = "C:/.../file.h5" f = h5py.File(fileName, "r") for item in f.attrs.keys(): print item + ":", f.attrs[item] mr = f['/entry/mr_scan/

我正试图打开一个HDF5文件,以便用python读取它,以便以后可以用它做更多的事情。运行程序读取文件时出错。计划如下:

import h5py    # HDF5 support
import numpy

fileName = "C:/.../file.h5"
f = h5py.File(fileName,  "r")
for item in f.attrs.keys():
    print item + ":", f.attrs[item]
mr = f['/entry/mr_scan/mr']
i00 = f['/entry/mr_scan/I00']
print "%s\t%s\t%s" % ("#", "mr", "I00")
for i in range(len(mr)):
    print "%d\t%g\t%d" % (i, mr[i], i00[i])
f.close()
如果我运行该程序,我最终会看到以下错误:

Traceback (most recent call last):
 File "TestHD5.py", line 8, in <module>
    mr = f['/entry/mr_scan/mr']
 File "h5py\_objects.pyx", line 54, in h5py._objects.with_phil.wrapper (C:\aroot\work\h5py\_objects.c:2587)
 File "h5py\_objects.pyx", line 55, in h5py._objects.with_phil.wrapper (C:\aroot\work\h5py\_objects.c:2546)
 File "C:\programs\Python27\lib\site-packages\h5py\_hl\group.py", line 166, in __getitem__
    oid = h5o.open(self.id, self._e(name), lapl=self._lapl)
 File "h5py\_objects.pyx", line 54, in h5py._objects.with_phil.wrapper (C:\aroot\work\h5py\_objects.c:2587)
 File "h5py\_objects.pyx", line 55, in h5py._objects.with_phil.wrapper (C:\aroot\work\h5py\_objects.c:2546)
 File "h5py\h5o.pyx", line 190, in h5py.h5o.open (C:\aroot\work\h5py\h5o.c:3417)
KeyError: 'Unable to open object (Component not found)'
回溯(最近一次呼叫最后一次):
文件“TestHD5.py”,第8行,在
mr=f['/entry/mr_scan/mr']
文件“h5py\\u objects.pyx”,第54行,在h5py.\u objects.with\u phil.wrapper中(C:\aroot\work\h5py\\u objects.C:2587)
文件“h5py\\u objects.pyx”,第55行,h5py.\u objects.with\u phil.wrapper(C:\aroot\work\h5py\\u objects.C:2546)
文件“C:\programs\Python27\lib\site packages\h5py\\u hl\group.py”,第166行,在\uuu getitem中__
oid=h5o.open(self.id,self.\u e(名称),lapl=self.\u lapl)
文件“h5py\\u objects.pyx”,第54行,在h5py.\u objects.with\u phil.wrapper中(C:\aroot\work\h5py\\u objects.C:2587)
文件“h5py\\u objects.pyx”,第55行,h5py.\u objects.with\u phil.wrapper(C:\aroot\work\h5py\\u objects.C:2546)
文件“h5py\h5o.pyx”,第190行,在h5py.h5o.open中(C:\aroot\work\h5py\h5o.C:3417)
KeyError:“无法打开对象(未找到组件)”
我只是缺少一些模块来读取文件,或者这是其他的东西。如果我使用h5文件veiwer程序,它将打开.h5文件。谢谢

您的字符串:

path = "C:\Users\312001\m2020\data\20170104_145626\doPoint_20170104_150016\dataset_XMIT    data_20170104_150020.h5"
充满了坏的/非法的(谢天谢地,它们会变成语法错误,尽管您使用的是Python 2),还有一些确实有效,因此Python认为
path
实际上等于:
'C:\\Users\xca001\\m2020\\data\x8170104\u 145626\\doPoint\u 20170104\u 150016\\dataset\u XMIT data\u 20170104\u 150020.h5'
(注意那些
\x##

您的选择:

  • 通过在字符串文本前加
    r
  • 不要对路径使用反斜杠。Python会将正向斜杠转换为Windows路径的反斜杠
  • 双反斜杠
  • 您的字符串:

    path = "C:\Users\312001\m2020\data\20170104_145626\doPoint_20170104_150016\dataset_XMIT    data_20170104_150020.h5"
    
    充满了坏的/非法的(谢天谢地,它们会变成语法错误,尽管您使用的是Python 2),还有一些确实有效,因此Python认为
    path
    实际上等于:
    'C:\\Users\xca001\\m2020\\data\x8170104\u 145626\\doPoint\u 20170104\u 150016\\dataset\u XMIT data\u 20170104\u 150020.h5'
    (注意那些
    \x##

    您的选择:

  • 通过在字符串文本前加
    r
  • 不要对路径使用反斜杠。Python会将正向斜杠转换为Windows路径的反斜杠
  • 双反斜杠

  • @NickT发布的答案修复了我的原始问题。新版本中显示的问题是由于hd5文件中的hd5文件夹名称与代码提供的文件夹名称不匹配。

    @NickT发布的答案修复了我的原始问题。新版本中显示的问题是由于hd5文件夹hd5文件中的r名称与代码提供的文件夹名称不匹配。

    请不要发布代码或输出的图像。直接粘贴代码和输出,这样更易于使用。抱歉,我希望这会使@RUSHYPANCALSORRY更好。我希望这会使@RadLexusTry在文件名前面放置和
    r
    更好;
    r“C:\User
    。避免在类似瘟疫的路径中使用反斜杠。Python会很高兴地转换正斜杠(
    /
    )为您在Windows上设置反斜杠。请不要发布代码或输出的图像。直接粘贴代码和输出,这样更易于使用。抱歉,我希望这会使@RushyPanchalSorry更好。我希望这会使@RadLexusTry更好地将
    r
    放在文件名前面;
    r”C:\User
    。避免在类似瘟疫的路径中使用反斜杠。Python会很高兴地转换正斜杠(
    /
    )为您在Windows上创建反斜杠。感谢您删除了UnicodeDecodeError和终端显示的其他一些行。我将对其进行编辑,以便您现在可以看到它显示的内容。我仍然无法打开该文件。感谢您删除了UnicodeDecodeError和终端显示的其他一些行。我将对其进行编辑,以便您可以n现在看看它显示了什么。我仍然无法打开该文件。