使用python3批量下载rbsp数据的示例代码
1.原始网站
https://www.rbsp-ect.lanl.gov/data_pub/rbspa/
2.算法说明
进入需要下载的数据所在的目录,获取并解析该目录下的信息,解析出cdf文件名后,将cdf文件下载到内存中,随后保存到硬盘中。程序使用python3实现。
3.程序代码
#!/bin/python3 #gettherbspdata #writenbyLiangjinSongon20191219 importsys importrequests frompathlibimportPath #theurlcontainingthecdffiles url="https://www.rbsp-ect.lanl.gov/data_pub/rbspa/ECT/level2/2016/" #localpathtosavethecdffile path="/home/liangjin/Downloads/test/" defmain(): re=requests.get(url) html=re.text cdfs=resolve_cdf(html) ncdf=len(cdfs) ifncdf==0: return print(str(ncdf)+"cdffilesaredetected.") i=1 #download forfincdfs: rcdf=url+f lcdf=path+f print(str(i)+"Downloading"+rcdf) download_cdf(rcdf,lcdf) i+=1 return #resolvethefilenameofcdf defresolve_cdf(html): cdfs=list() head=html.find("href=") ifhead==-1: print("Thecdffilesnotfound!") returncdfs leng=len(html) whilehead!=-1: tail=html.find(">",head,leng) #Extractthecdffilename cdf=html[head+6:tail-1] head=html.find("href=",tail,leng) ifcdf.find('cdf')==-1: continue cdfs.append(cdf) returncdfs defdownload_cdf(rcdf,lcdf): rfile=requests.get(rcdf) withopen(lcdf,"wb")asf: f.write(rfile.content) f.close() return if__name__=="__main__": lpath=Path(path) ifnotlpath.is_dir(): print("Pathnotfound:"+path) sys.exit(0) sys.exit(main())
4.使用说明
url为远程cdf文件所在路径。
path为本地保存cdf文件的路径。
url和path的末尾都有“/”(Linux下情形,若是Windows,路径分隔符为“\\”,则path末尾应为“\\”)。
5.运行效果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。