Извините, если это очень простой вопрос о h5py
.
Я читал документацию, но не нашел похожего примера.
Я пытаюсь создать несколько наборов данных hdf5 с помощью Python, но оказывается, что после закрытия данные файла будут перезаписаны.
Скажем, я делаю следующее:
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()
RuntimeError: невозможно создать ссылку (имя уже существует)
Согласно документации, данные должны храниться непрерывно, но я не нашел, как избежать перезаписи данных.
Как я могу хранить данные на ранее закрытом hdf5, используя только один оператор?
'a'
? Или я неправильно понимаю ваш вопрос? - person Anand S Kumar   schedule 09.08.2015'a'
, файл должен быть предварительно открыт в режиме'w'
вне цикла. - person ilciavo   schedule 09.08.2015'a'
, ранее не существовал, он создаст файл. Проверьте документацию -a Read/write if exists, create otherwise (default)
. Вы всегда можете использовать режимa
. - person Anand S Kumar   schedule 09.08.2015'a'
, он сообщает мне, что это имя уже существует. Так что я просто удаляю набор данных, файл или есть какой-то другой способ? - person ilciavo   schedule 09.08.2015