wget是linux/unix下通常使用的下載http/ftp的數據,使用非常方便,其實wget目前經過編譯,也可在windows下使用。最近需要下載大量的遙感數據,使用了python寫了批處理下載程序,使用的是urllib的urlretrieve進行下載,數據下載還可以,但是界面交互性不好看。就根據自己在linux下載數據進行了改進。
1. wget在windows下的安裝:
從網站下載wget for windows工具(http://gnuwin32.sourceforge.net/packages/wget.htm),解壓后將wget.exe拷貝至system32下,然后從cmd中鍵入wget,安裝成功提示如下:
2. python批處理腳本下載
下載的大量遙感水色數據來自於NASA OBPG網站(http://oceandata.sci.gsfc.nasa.gov),根據Order之后的數據列表,保存至txt,之后構建下載網址及字符串;而后使用suprocess.call進行下載。
代碼如下:
#http://oceandata.sci.gsfc.nasa.gov/cgi/getfile/A2005067190000.L0_LAC.bz2 #!/usr/bin/env python #coding:utf-8 import os import os.path import subprocess def retrieving_obpg(filelist,outpath): '''Download data''' f = open(filelist,'r') log= open(os.path.splitext(filelist)[0]+'_log.txt','w') os.chdir(outpath) print(os.curdir) for i in f: try: each_item = str(i.strip()) cmd = 'wget http://oceandata.sci.gsfc.nasa.gov/cgi/getfile/'+each_item print(cmd) if not os.path.exists(outpath+each_item): status = subprocess.call(cmd) if status !=0: log.write('\nFailed:'+each_item) continue log.write('\nSuccess:'+each_item) log.flush() except: log.write('\nFailed:'+each_item) continue f.close() log.close() if __name__ =='__main__': import glob outpath = 'F:\\衛星數據\\MODIS\\' for filelist in glob.glob(r'F:\衛星數據\MODIS\filelists\*m2s.txt'): retrieving_obpg(filelist,outpath) print('END')