2
我在这里有一个非常奇怪的问题。我有两个函数:一个读取使用h5py创建的HDF5文件,另一个创建连接前一个函数返回的内容的新HDF5文件。无法访问返回的h5py对象实例
def read_file(filename):
with h5py.File(filename+".hdf5",'r') as hf:
group1 = hf.get('group1')
group1 = hf.get('group2')
dataset1 = hf.get('dataset1')
dataset2 = hf.get('dataset2')
print group1.attrs['w'] # Works here
return dataset1, dataset2, group1, group1
而创造现在的问题是,该数据集,并从创建和WD1,WD2,WG1和WG2为代表的新文件的属性可以通过我访问的文件功能
def create_chunk(start_index, end_index):
for i in range(start_index, end_index):
if i == start_index:
mergedhf = h5py.File("output.hdf5",'w')
mergedhf.create_dataset("dataset1",dtype='float64')
mergedhf.create_dataset("dataset2",dtype='float64')
g1 = mergedhf.create_group('group1')
g2 = mergedhf.create_group('group2')
rd1,rd2,rg1,rg2 = read_file(filename)
print rg1.attrs['w'] #gives me <Closed HDF5 group> message
g1.attrs['w'] = "content"
g1.attrs['x'] = "content"
g2.attrs['y'] = "content"
g2.attrs['z'] = "content"
print g1.attrs['w'] # Works Here
return mergedhf.get('dataset1'), mergedhf.get('dataset2'), g1, g2
def calling_function():
wd1, wd2, wg1, wg2 = create_chunk(start_index, end_index)
print wg1.attrs['w'] #Works here as well
和我可以访问属性数据,但我不能做相同的我已阅读并返回的值。
当我返回对调用函数的引用时,任何人都可以帮助我获取数据集和组的值吗?
非常感谢,相对较新的Python,所以不知道什么“与”在做什么。我已经通过复制来获取数据集内容,但这些组正在创建所有问题。 还有一个问题,如果我不使用hf.close()关闭文件引用,它会在下次读取文件时自动覆盖或关闭吗? –
我的理解是它不确定。例如,在调用'hf.close()'之前,数据可能实际上不会被写入。 – Yossarian
要强制写入我使用hf.flush()的数据,所以我希望没有突然的行为,但谢谢你的回应。 –