обновить набор данных в формате hdf5 python - PullRequest
0 голосов
/ 29 февраля 2020

Я создал три функции: одну для открытия файла и одну для создания нового набора данных с указанием пути к группе, третья, где у меня проблема в том, что он не обновляет его. он по-прежнему со своим старым значением

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

...