Я пытаюсь создать обработчик файла hdf5 с измененными настройками кэша следующим образом:
import h5py
import contextlib
def hdf5_handler(filename, mode="r"):
h5py.File(filename, "a").close()
propfaid = h5py.h5p.create(h5py.h5p.FILE_ACCESS)
settings = list(propfaid.get_cache())
settings[1] = 0
settings[2] = 0
propfaid.set_cache(*settings)
with contextlib.closing(h5py.h5f.open(filename, fapl=propfaid)) as fid:
return h5py.File(fid, mode)
#############
hdf5 = hdf5_handler("/tmp/foo.hdf5", "a")
Но выдает следующую ошибку:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-121-35fa9f73a406> in <module>()
99 return h5py.File(fid, mode)
100 #############
--> 101 hdf5 = hdf5_handler("/tmp/foo.hdf5", "a")
<ipython-input-121-35fa9f73a406> in hdf5_handler(filename, mode)
96 settings[2] = 0
97 propfaid.set_cache(*settings)
---> 98 with contextlib.closing(h5py.h5f.open(filename, fapl=propfaid)) as fid:
99 return h5py.File(fid, mode)
100 #############
h5py/_objects.pyx in h5py._objects.with_phil.wrapper()
h5py/_objects.pyx in h5py._objects.with_phil.wrapper()
h5py/h5f.pyx in h5py.h5f.open()
TypeError: expected bytes, str found
Версия Python: 3.5.5 h5py версия: '2.8.0'
Я также нашел похожий код в следующем, но он также не работает для меня с той же ошибкой: Как установить параметры кэша при использовании высокого уровня h5pyинтерфейс