好的,似乎可以工作。如果尝试下载目录或扫描文件,可能会出现问题。异常处理可以很方便地捕获错误的文件类型并跳过。
glob.glob由于您使用的是远程文件系统,因此无法正常工作,但是您可以使用
fnmatch来匹配名称
这是代码:它下载
*DEM*TEMP目录中匹配的所有文件,并按目录排序。
import ftplib,sys,fnmatch,osoutput_root = os.getenv("TEMP")fc = ftplib.FTP("ftp.igsb.uiowa.edu")fc.login()fc.cwd("/gis_library/counties")root_dirs = fc.nlst()for l in root_dirs: sys.stderr.write(l + " ...n") #print(fc.size(l)) dir_files = fc.nlst(l) local_dir = os.path.join(output_root,l) if not os.path.exists(local_dir): os.mkdir(local_dir) for f in dir_files: if fnmatch.fnmatch(f,"*DEM*"): # cannot use glob.glob sys.stderr.write("downloading "+l+"/"+f+" ...n") local_filename = os.path.join(local_dir,f) with open(local_filename, 'wb') as fh: fc.retrbinary('RETR '+ l + "/" + f, fh.write)fc.close()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)