如果这是一个关于 h5py
的非常基础的问题,那么很抱歉。
我在阅读文档,但没有找到类似的示例。
我正在尝试使用Python创建多个hdf5数据集,但事实证明,在关闭文件后数据将被覆盖。
假设我执行以下操作:
import numpy as np
import h5py
f = h5py.File('test.hdf5', 'w')
f.create_dataset('data1', data = np.ones(10))
f.close()
f = h5py.File('test.hdf5', 'w')
f.create_dataset('data0', data = np.zeros(10))
f.close()
f = h5py.File('test.hdf5', 'r')
f["data1"].value
f.close()
我遇到了以下问题:
KeyError: “无法打开对象(对象‘data1’不存在)”
如果我需要添加数据,那么就需要先以'w'
模式打开,然后再以'a'
模式追加,这需要两个不同的语句。
import numpy as np
import h5py
f = h5py.File('test.hdf5', 'w')
f.create_dataset('data1', data = np.ones(10))
f.close()
f = h5py.File('test.hdf5', 'a')
f.create_dataset('data0', data = np.zeros(10))
f.close()
f = h5py.File('test.hdf5', 'r')
f["data1"].value
f.close()
如果我在两种情况下都以'a'
模式打开文件:
import numpy as np
import h5py
f = h5py.File('test.hdf5', 'a')
f.create_dataset('data1', data = np.ones(10))
f.close()
f = h5py.File('test.hdf5', 'a')
f.create_dataset('data0', data = np.zeros(10))
f.close()
f = h5py.File('test.hdf5', 'r')
print(f['data1'].value)
f.close()
运行时错误:无法创建链接(名称已存在)
根据文档,数据应该被连续地存储,但我没有找到如何避免覆盖数据。
如何仅使用一条语句将数据存储在之前关闭的hdf5文件中?
'a'
模式下打开文件?还是我误解了你的问题? - Anand S Kumar'a'
模式,则文件必须在循环外部以'w'
模式预先打开。 - ilciavo