GAN项目中使用h5py读取HDF5文件访问指定分组报错是什么原因?
报错原因及解决方案
- 缩进错误(最高概率)
你提供的修改后代码存在明显的缩进问题,Python中with代码块内的逻辑需要缩进,否则with语句执行完毕后文件对象会自动关闭,后续再调用file_object访问HDF5内容必然报错,这类错误的提示一般包含file object is closed相关描述。正确的缩进格式如下:
with h5py.File('mount/My Drive/Colab Notebooks/Pogba/pogba.h5py', 'r') as file_object: # 所有操作文件对象的代码都要缩进在with块内 dataset = file_object['pogba'] image = numpy.array(dataset['2021-09-06T230508.713.jpg']) plt.imshow(image, interpolation='none')
- HDF5文件内不存在
pogba键
如果报错类型是KeyError: 'pogba',说明你的HDF5文件根目录下没有名为pogba的组/键。你第一段代码已经打印了HDF5根目录下的所有组名,请检查打印输出的内容:- 如果输出的组名和
pogba不一致,替换file_object['pogba']中的键为实际打印出的组名即可 - 如果没有分组,说明你生成
pogba.h5py文件时没有创建对应组,而是直接把图片存在了根目录,此时可以直接用file_object['2021-09-06T230508.713.jpg']读取图片
- 如果输出的组名和
- 文件路径错误或文件损坏
如果报错提示是无法打开文件,先执行以下代码验证文件路径是否正确:
import os print(os.path.exists('mount/My Drive/Colab Notebooks/Pogba/pogba.h5py'))
如果输出为False,说明文件路径拼写错误,修正路径即可;如果输出为True但仍然报错,说明HDF5文件生成时出错损坏,需要重新生成数据集文件。
内容的提问来源于stack exchange,提问作者Jay Choi
相关产品推荐
相关产品推荐

