hdf5文件中“file”和“File”对象中的属性错误

时间:2015-06-27 21:28:27

标签: python python-2.7 attributes hdf5 h5py

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

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

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

1 个答案:

答案 0 :(得分: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库有更好理解的人可以为此提供更好的解释但是你无法在write()对象上调用h5py.File()的原因是因为它没有write错误消息建议的方法。

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