gpt4 book ai didi

python - 使用 h5py 创建的 HDF5 文件无法通过 h5py 打开

转载 作者:太空狗 更新时间:2023-10-29 17:28:42 26 4
gpt4 key购买 nike

我在 Ubuntu 12.04(32 位版本)下创建了一个 HDF5 文件,显然没有任何问题,使用 Anaconda 作为 Python 发行版并在 ipython 笔记本中编写。底层数据都是numpy数组。例如,

import numpy as np
import h5py

f = h5py.File('myfile.hdf5','w')

group = f.create_group('a_group')

group.create_dataset(name='matrix', data=np.zeros((10, 10)), chunks=True, compression='gzip')

但是,如果我尝试从一个新的 iypthon 笔记本打开这个文件,我会收到一条错误消息:

f = h5py.File('myfile.hdf5', "r")

---------------------------------------------------------------------------
IOError Traceback (most recent call last)
<ipython-input-4-b64ac5089cd4> in <module>()
----> 1 f = h5py.File(file_name, "r")

/home/sarah/anaconda/lib/python2.7/site-packages/h5py/_hl/files.pyc in __init__(self, name, mode, driver, libver, userblock_size, **kwds)
220
221 fapl = make_fapl(driver, libver, **kwds)
--> 222 fid = make_fid(name, mode, userblock_size, fapl)
223
224 Group.__init__(self, fid)

/home/sarah/anaconda/lib/python2.7/site-packages/h5py/_hl/files.pyc in make_fid(name, mode, userblock_size, fapl, fcpl)
77
78 if mode == 'r':
---> 79 fid = h5f.open(name, h5f.ACC_RDONLY, fapl=fapl)
80 elif mode == 'r+':
81 fid = h5f.open(name, h5f.ACC_RDWR, fapl=fapl)

/home/sarah/anaconda/lib/python2.7/site-packages/h5py/h5f.so in h5py.h5f.open (h5py/h5f.c:1741)()

IOError: Unable to open file (Unable to find a valid file signature)

你能告诉我丢失的文件签名是什么吗?我在创建文件时是否遗漏了什么?

最佳答案

由于我们在我的问题的评论中解决了这个问题,所以我将结果写在这里以将其标记为已解决。

主要问题是我在创建文件后忘记关闭它。本来有两个简单的选择,要么:

import numpy as np
import h5py

f = h5py.File('myfile.hdf5','w')
group = f.create_group('a_group')
group.create_dataset(name='matrix', data=np.zeros((10, 10)), chunks=True, compression='gzip')
f.close()

或者,我最喜欢的,因为文件会自动关闭:

import numpy as np
import h5py

with h5py.File('myfile.hdf5','w') as f:
group = f.create_group('a_group')
group.create_dataset(name='matrix', data=np.zeros((10, 10)), chunks=True, compression='gzip')

关于python - 使用 h5py 创建的 HDF5 文件无法通过 h5py 打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26613570/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com