大家好,我想用python代码批量打开一个文件夹中的所有HDF文件,然后进行处理。

我的代码如下:
import os
import numpy as np
import scipy as sp
from pyhdf.SD import *
print '************************Read files***********************************'
indir_lsta=r'E:\MODIS_LST\Aqua_2008\MS'
indir_lstt=r'E:\MODIS_LST\Terra_2008\MS'
#for Infiles in glob.glob(os.path.join(path,'*.hdf')):
lista=os.listdir(indir_lsta)
listt=os.listdir(indir_lstt)
print 'the number of the files in the foild is :',len(lista)
for k in range(len(lista)):
lstfile=SD(lista[k-1],SDC.READ)
运行通不过,提示的问题是:pyhdf.error.HDF4Error: SD: no such file
也尝试过换用其他打开HDF文件的方式,还是不行,当时SD打开单个文件是可以的。请高手指教,不胜感激!!!

很明显,你这里的错误:
pyhdf.error.HDF4Error: SD: no such file
是和pyhdf,这个python第三方的库有关系。
即,除非:
某人非常熟悉pyhdf这个库
有人就是pyhdf的开发者
否则,都很难找到根本的原因和解决办法啊。

所以,我是没办法帮你。

除非:
有你的完整的代码,有你的所有的对应的HDF文件,
并且模拟你的环境,花时间去调试你这些代码,
然后,或许,能解决你的问题。。。。。。。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-02
indir_lsta=r'E:/MODIS_LST/Aqua_2008/MS'
indir_lstt=r'E:/MODIS_LST/Terra_2008/MS'
把斜杠换一下
因为no such file就是找不到文件 ,改一下斜杠就可以了。我之前也遇到过这个问题。
如果还不行吗,要么就是文件位置或者格式出错。
第2个回答  2020-04-29
请问楼主解决了吗
相似回答