windows使用python调用wget批处理下载数据

时间:2015-12-23 10:31:29   收藏:0   阅读:339

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(rF:\卫星数据\MODIS\filelists\*m2s.txt):
            retrieving_obpg(filelist,outpath)
        print(END)

原文:http://www.cnblogs.com/ahnucao/p/5068978.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!