Python NotDirectoryError:[WinError 267]目录名无效:';C:\\Users\\username\\MYD06_L2.A2008001.0000.006.2013341193524.hdf';
我正在使用Python NotDirectoryError:[WinError 267]目录名无效:';C:\\Users\\username\\MYD06_L2.A2008001.0000.006.2013341193524.hdf';,python,apache-spark,jupyter-notebook,jupyter,pyhdf,Python,Apache Spark,Jupyter Notebook,Jupyter,Pyhdf,我正在使用windows10并在Jupyter笔记本(在Chrome)中运行代码 这是我的代码: if __name__ == '__main__': import itertools MOD03_path = r"C:\Users\saviosebastian\MYD03.A2008001.0000.006.2012066122450.hdf" MOD06_path = r"C:\Users\saviosebastian\MYD06_L2.A2008001.0000.0
windows10
并在Jupyter笔记本
(在Chrome
)中运行代码
这是我的代码:
if __name__ == '__main__':
import itertools
MOD03_path = r"C:\Users\saviosebastian\MYD03.A2008001.0000.006.2012066122450.hdf"
MOD06_path = r"C:\Users\saviosebastian\MYD06_L2.A2008001.0000.006.2013341193524.hdf"
satellite = 'Aqua'
yr = [2008]
mn = [1] #np.arange(1,13)
dy = [1]
# latitude and longtitude boundaries of level-3 grid
lat_bnd = np.arange(-90,91,1)
lon_bnd = np.arange(-180,180,1)
nlat = 180
nlon = 360
TOT_pix = np.zeros(nlat*nlon)
CLD_pix = np.zeros(nlat*nlon)
### To use Spark in Python
spark = SparkSession\
.builder\
.appName("Aggregation")\
.getOrCreate()
filenames0=['']*500
i=0
for y,m,d in itertools.product(yr,mn,dy):
#-------------find the MODIS prodcts--------------#
date = datetime.datetime(y,m,d)
JD01, JD02 = gcal2jd(y,1,1)
JD1, JD2 = gcal2jd(y,m,d)
JD = np.int((JD2+JD1)-(JD01+JD02) + 1)
granule_time = datetime.datetime(y,m,d,0,0)
while granule_time <= datetime.datetime(y,m,d,23,55): # 23,55
print('granule time:',granule_time)
**[MOD03_fp = 'MYD03.A{:04d}{:03d}.{:02d}{:02d}.006.?????????????.hdf'.format(y,JD,granule_time.hour,granule_time.minute)][1]**
MOD06_fp = 'MYD06_L2.A{:04d}{:03d}.{:02d}{:02d}.006.?????????????.hdf'.format(y,JD,granule_time.hour,granule_time.minute)
MOD03_fn, MOD06_fn =[],[]
for MOD06_flist in os.listdir(MOD06_path):
if fnmatch.fnmatch(MOD06_flist, MOD06_fp):
MOD06_fn = MOD06_flist
for MOD03_flist in os.listdir(MOD03_path):
if fnmatch.fnmatch(MOD03_flist, MOD03_fp):
MOD03_fn = MOD03_flist
if MOD03_fn and MOD06_fn: # if both MOD06 and MOD03 products are in the directory
如果uuuu name_uuuu=='\uuuuuuu main\uuuuuu':
进口itertools
MOD03_path=r“C:\Users\saviosebastian\MYD03.A2008001.0000.006.2012066122450.hdf”
MOD06_path=r“C:\Users\saviosebastian\MYD06_L2.A2008001.0000.006.2013341193524.hdf”
卫星='Aqua'
yr=[2008]
mn=[1]#np.arange(1,13)
dy=[1]
#三级网格的纬度和经度边界
纬度=np.arange(-90,91,1)
lon_bnd=np.arange(-180180,1)
nlat=180
nlon=360
TOT_pix=np.零(nlat*nlon)
CLD_pix=np.零(nlat*nlon)
###在Python中使用Spark
火花=火花会话\
建筑商先生\
.appName(“聚合”)\
.getOrCreate()
文件名0=['']*500
i=0
对于itertools.产品中的y、m、d(年、月、日):
#-------------查找MODIS产品--------------#
date=datetime.datetime(y,m,d)
JD01,JD02=gcal2jd(y,1,1)
JD1,JD2=gcal2jd(y,m,d)
JD=np.int((JD2+JD1)-(JD01+JD02)+1)
时间=日期时间。日期时间(y,m,d,0,0)
虽然我不能在不了解您计算机上的目录系统的情况下给您一个具体的答案,但是现在很明显,您所引用的目录的名称有问题。使用“文件资源管理器”确保目录确实存在,并确保没有拼写错误文件名,如果文件名为,则很容易拼写错误。您调用的字符串包含文件路径。这真的应该是包含目录名的字符串吗?C:\Users\saviosebastian\MYD06_L2.A2008001.0000.006.2013341193524。根据您的错误,hdf
无效。--这是代码。我应该只提供目录(在本例中为“C:/Users/saviosebastian/”),而不是包含文件名的整个路径吗?这与os.listdir()有关,您犯的错误与OP相同:将文件名与目录名混淆。文件和目录是根本不同的东西。操作目录,而不是文件。我知道,很抱歉没有区分。目录错误意味着目录路径有问题,而不是文件名有问题。感谢您的更正,尽管确保文件名拼写正确不会有什么坏处。