码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-12-23 10:32:02      阅读:1222      评论:0      收藏:0      [点我收藏+]

标签:

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)

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

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!