2015-06-27 85 views
0

我使用file = open()命令创建了hdf5文件。在这种情况下,我可以编写和读取文件。但是当我尝试file.keys()时,它给了我属性错误。错误是AttributeError: 'file' object has no attribute 'keys'hdf5文件中'文件'和'文件'对象的属性错误

然后我使用file = h5py.File()命令创建了一个新的hdf5文件。在这种情况下,我可以读取并使用命令file.keys(),而不会出现任何错误。但我不能在文件中写入。错误是AttributeError: 'File' object has no attribute 'write'

这些错误背后的原因是什么?对象'file'对象与'File'对象之间是否有区别?

回答

1

open()返回file类型的对象,即以标准类型构建的Python来表示文件。这有一个相当简单/低级别的界面,如果您正在阅读文本文件或自己解析内容(即文本或二进制文件),则可以使用它。你可以阅读方法的文档的file类型有在这里 - https://docs.python.org/2/library/stdtypes.html#bltin-file-objects

h5py.File()返回不同类型的对象具有附加功能来处理HDF5格式,并提供了它自己的不同的API例如你提到的keys()方法。

打开h5py.File()时,您必须指定要如何打开它,例如用于读/写模式的r+。对h5py库有更好的理解的人可能能够给出更好的解释,但是您不能在h5py.File()对象上调用write()的原因是因为它没有如错误消息所建议的write方法。

查看h5py的API文档,它提供了将不同数据写入文件的不同方法 - http://docs.h5py.org/en/latest/high/dataset.html