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

windows使用python调用wget批处理下载数据的更多相关文章

  1. Python调用matplotlib实现交互式数据可视化图表案例

    交互式的数据可视化图表是 New IT 新技术的一个应用方向,在过去,用户要在网页上查看数据,基本的实现方式就是在页面上显示一个表格出来,的而且确,用表格的方式来展示数据,显示的数据量会比较大,但是, ...

  2. Windows下Java调用BAT批处理不弹出cmd窗口

    常规Windows下Java调用BAT方式肯定会弹出cmd窗口 Runtime.getRuntime().exec("cmd.exe /C start D:\\test.bat") ...

  3. windows下python调用c文件流程

    1.新建fun.c文件和fun.h文件 #include <stdio.h> #include <stdlib.h> #include <string.h> int ...

  4. Linux调用Kaggle API下载数据

    1. 登录Kaggle账户,点击My Account 2. Create New API Token得到kaggle.json 3. pip install kaggle 4. 执行kaggle会报错 ...

  5. python学习:Windows 下 Python easy_install 的安装

    Windows 下 Python easy_install 的安装     下载安装python安装工具下载地址:http://pypi.python.org/pypi/setuptools 可以找到 ...

  6. Python调用windows下DLL详解

    Python调用windows下DLL详解 - ctypes库的使用 2014年09月05日 16:05:44 阅读数:6942 在python中某些时候需要C做效率上的补充,在实际应用中,需要做部分 ...

  7. python调用HEG工具批量处理MODIS数据

    下面的代码主要用于使用python语言调用NASA官方的MODIS处理工具HEG进行投影坐标转换与重采样批量处理 主要参考 HEG的用户手册:https://newsroom.gsfc.nasa.go ...

  8. 重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件

    [源码下载] 重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件 作者:webabcd 介绍重新想象 Windows 8.1 Sto ...

  9. 多线程爬虫Java调用wget下载文件,独立线程读取输出缓冲区

    写了个抓取appstore的,要抓取大量的app,本来是用httpclient,但是效果不理想,于是直接调用wget下载,但是由于标准输出.错误输出的原因会导致卡住,另外wget也会莫名的卡住. 所以 ...

随机推荐

  1. window—BAT脚本

    bat脚本注释方法: 1.:: 注释内容(第一个冒号后也可以跟任何一个非字母数字的字符) 2.rem 注释内容(不能出现重定向符号和管道符号) 3.echo 注释内容(不能出现重定向符号和管道符号)〉 ...

  2. matlab拟合三维椭球

            同学问的,查了下资料. %需要拟合的点的坐标为(0,-174.802,990.048),(0.472,-171.284,995.463),(0.413,-168.639,1003.55 ...

  3. JdbcTemplate 操作Oracle Blob

    1:增加操作 public int addTest(TestVo tv) { byte bz[] = tv.getBz().getBytes(); LobHandler lobHandler = ne ...

  4. Servo: The Embeddable Browser Engine

    Embedding, in the context of this article, is the process of hosting a web rendering engine inside a ...

  5. 为了启动我在openshift的angular应用

    在Windows环境下搭建OpenShift环境,安装客户端工具rhc,首先需要安装Ruby和Git,参阅https://developers.openshift.com/en/getting-sta ...

  6. 三大框架SSH(struts2+spring+hibernate)整合时相关配置文件的模板

    最近在学SSH三大框架的整合,在此对他们整合时相关配置文件做一简单的模板总结,方便以后复用! 首先是web.xml配置文件,这里面就配置一些简单的监听器.过滤器,包括spring核心配置文件appli ...

  7. java数组遍历——iterator和for方法

    import Java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ArrayTest ...

  8. MySQL数据表修复, 如何修复MySQL数据库(MyISAM / InnoDB)

    常用的Mysql数据库修复方法有下面3种: 1. mysql原生SQL命令: repair 即执行REPAIR TABLE SQL语句 语法:REPAIR TABLE tablename[,table ...

  9. maven错误解决:编码GBK的不可映射字符

    直接将项目改为UTF-8编码,无效! 要通过修改pom.xml文件,告诉maven这个项目使用UTF-8来编译. 方案一: 在pom.xml的/project/build/plugins/下的编译插件 ...

  10. linux远程管理工具

    一.常见的远程管理控制方式主要有以下几种 ①RDP(remote desktop protocol)协议 远程桌面协议,我们常用的windows操作系统就是的远程桌面管理就是基于该协议的. ②teln ...