Я создал три функции: одну для открытия файла и одну для создания нового набора данных с указанием пути к группе, третья, где у меня проблема в том, что он не обновляет его. он по-прежнему со своим старым значением
def openFile(file):
import h5py
return h5py.File(file,mode='r+')
def createDW(path,var,f):
g = f.create_group(path)
g.create_dataset ('val',data=var,maxshape=(None,),chunks=True)
def updateDataWord(path,var,f):
g = f.get(path)
if g :
d=g['val'][:]
print(d)
d.resize(var.shape)
print(var)
d=var
#create A variable var
dtype = [ ('A', 'S32'),('B', 'int')]
var=np.array([('fgewfewfwfewfwefwf',4355),('fgewfewfwfewfwefwf',435544),('gh',554354),('df',454355)],dtype=dtype)
fa=openFile('file.hdf5') # open a file
createDW('/gh/cfefe',var,fa) # create a dataset
d=fa['/gh/cfefe']['val'][:]
# create new variable
dtype = [ ('A', 'S32'),('B', 'int')]
var=np.array([('grgeg',43),('fgewfewfwfewfwefwf',435544),('gh',554354),('df',454355)],dtype=dtype)
#update
updateDataWord('/gh/cfefe',var,fa)
fa['/gh/cfefe']['val'][:] # this return the previous value, its value just like d
что я делаю неправильно
Редактировать
это работа
def updateDataWord(path,var,f):
g = f.get(path)
if g :
d=g['val']
d.resize(var.shape)
d[:]=var