windows使用python調用wget批處理下載數據

wget是linux/unix下一般使用的下載http/ftp的數據,使用很是方便,其實wget目前通過編譯,也可在windows下使用。最近須要下載大量的遙感數據,使用了python寫了批處理下載程序,使用的是urllib的urlretrieve進行下載,數據下載還能夠,可是界面交互性很差看。就根據本身在linux下載數據進行了改進。python

1. wget在windows下的安裝:linux

從網站下載wget for windows工具(http://gnuwin32.sourceforge.net/packages/wget.htm),解壓後將wget.exe拷貝至system32下,而後從cmd中鍵入wget,安裝成功提示以下:windows

image

2. python批處理腳本下載工具

下載的大量遙感水色數據來自於NASA OBPG網站(http://oceandata.sci.gsfc.nasa.gov),根據Order以後的數據列表,保存至txt,以後構建下載網址及字符串;然後使用suprocess.call進行下載。網站

image

 

代碼以下:url

#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')
相關文章
相關標籤/搜索