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


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,安裝成功提示如下:

image

2. python批處理腳本下載

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

image

 

代碼如下:

#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')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM