首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python h5py包读取hdf文件时出错

使用python h5py包读取hdf文件时出错
EN

Stack Overflow用户
提问于 2013-05-21 17:05:05
回答 3查看 15.6K关注 0票数 3

我想从我从 MODIS 网站下载的hdf文件中提取数据。链接中提供了一个示例文件。我正在使用以下代码行读取hdf文件:

代码语言:javascript
复制
>>> import h5py
>>> f = h5py.File( 'MYD08_M3.A2002182.051.2008334061251.psgscs_000500751197.hdf', 'r' )

我得到的错误是:

代码语言:javascript
复制
Traceback (most recent call last):
    File "<pyshell#3>", line 1, in <module>
f = h5py.File( 'MYD08_M3.A2002182.051.2008334061251.psgscs_000500751197.hdf', 'r' )
    File "C:\Python27\lib\site-packages\h5py\_hl\files.py", line 165, in __init__
fid = make_fid(name, mode, userblock_size, fapl)
    File "C:\Python27\lib\site-packages\h5py\_hl\files.py", line 57, in make_fid
fid = h5f.open(name, h5f.ACC_RDONLY, fapl=fapl)
    File "h5f.pyx", line 70, in h5py.h5f.open (h5py\h5f.c:1640)
IOError: unable to open file (File accessability: Unable to open file)

我已经尝试了其他几个来自不同来源的hdf文件,但我得到了相同的错误。这里的故障似乎是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-21 17:25:33

我认为可能有两个问题:

1)由于文件扩展名为hdf,可能这是一个HDF4文件。HDF5文件通常具有".hdf5“或".h5·”扩展名。我不确定h5py是否能够读取HDF4文件。

2)也许您必须更改文件本身的权限。如果您使用的是linux机器,请尝试:chmod +r file.hdf

您可以尝试使用HDFView打开您的文件。此软件可在多个平台上使用。你可以用它很容易地检查文件的属性。

票数 5
EN

Stack Overflow用户

发布于 2013-05-21 17:33:59

这听起来像是文件权限错误,甚至是文件存在。也许可以添加一些检查,例如

代码语言:javascript
复制
import os

hdf_file = 'MYD08_M3.A2002182.051.2008334061251.psgscs_000500751197.hdf'

if not os.path.isfile(hdf_file):
    print 'file %s not found' % hdf_file

if not os.access(hdf_file, os.R_OK):
    print 'file %s not readable' % hdf_file

f = h5py.File(hdf_file, 'r')
票数 2
EN

Stack Overflow用户

发布于 2014-11-10 23:27:01

我也遇到了同样的问题,后来我发现我的文件只有“只读”,出于某种原因,它会阻止h5py读取它。将权限修改为"write“后,我可以读取它。不知道为什么会这样设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16666066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档