python从ftp下载数据保存实例


Posted in Python onNovember 20, 2013

《hadoop权威指南》的天气数据可以在ftp://ftp3.ncdc.noaa.gov/pub/data/noaa下载,在网上看到这个数据好开心,打开ftp发现个问题,呀呀,这么多文件啊,我一个个去点另存为,得点到啥时候啊,迅雷应该有批量下载,只是我没找到,估计是我浏览器把迅雷禁掉了,干脆自己用python写一个实现下载好了,网上早了一下,发现很简单啊

#!/usr/bin/python
#-*- coding: utf-8 -*-
from ftplib import FTP
def ftpconnect():
    ftp_server = 'ftp3.ncdc.noaa.gov'
    username = ''
    password = ''
    ftp=FTP()
    ftp.set_debuglevel(2) #打开调试级别2,显示详细信息
    ftp.connect(ftp_server,21) #连接
    ftp.login(username,password) #登录,如果匿名登录则用空串代替即可
    return ftp
def downloadfile():  
    ftp = ftpconnect()    
    #print ftp.getwelcome() #显示ftp服务器欢迎信息
    datapath = "/pub/data/noaa/"
    year=1911
    while year<=1930:
        path=datapath+str(year)
        li = ftp.nlst(path)
        for eachFile in li:
            localpaths = eachFile.split("/")
            localpath = localpaths[len(localpaths)-1]
            localpath='weatherdata/'+str(year)+'--'+localpath#把日期放在最前面,方便排序
            bufsize = 1024 #设置缓冲块大小      
            fp = open(localpath,'wb') #以写模式在本地打开文件
            ftp.retrbinary('RETR ' + eachFile,fp.write,bufsize) #接收服务器上文件并写入本地文件
        year=year+1
    ftp.set_debuglevel(0) #关闭调试
    fp.close()
    ftp.quit() #退出ftp服务器

if __name__=="__main__":
    downloadfile()
Python 相关文章推荐
用Python制作简单的朴素基数估计器的教程
Apr 01 Python
python登录豆瓣并发帖的方法
Jul 08 Python
python 简单的绘图工具turtle使用详解
Jun 21 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
Python判断两个list是否是父子集关系的实例
May 04 Python
python获取文件真实链接的方法,针对于302返回码
May 14 Python
Python实现对文件进行单词划分并去重排序操作示例
Jul 10 Python
Linux系统(CentOS)下python2.7.10安装
Sep 26 Python
对python多线程与global变量详解
Nov 09 Python
如何利用Python开发一个简单的猜数字游戏
Sep 22 Python
python爬虫添加请求头代码实例
Dec 28 Python
Python之京东商品秒杀的实现示例
Jan 06 Python
python正则表达式抓取成语网站
Nov 20 #Python
python爬取网站数据保存使用的方法
Nov 20 #Python
使用python搭建Django应用程序步骤及版本冲突问题解决
Nov 19 #Python
python解析json实例方法
Nov 19 #Python
python聊天程序实例代码分享
Nov 18 #Python
python实现系统状态监测和故障转移实例方法
Nov 18 #Python
python线程池的实现实例
Nov 18 #Python
You might like
php遍历目录方法小结
2015/03/10 PHP
PHP调试的强悍利器之PHPDBG
2016/02/22 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
2016/04/04 PHP
php Session无效分析资料整理
2016/11/29 PHP
用javascript实现页面打印的三种方法
2007/03/05 Javascript
Jquery 学习笔记(一)
2009/10/13 Javascript
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
javascript for循环从入门到偏门(效率优化+奇特用法)
2012/08/01 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
深入剖析JavaScript中的枚举功能
2014/03/06 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
JS实现生成会变大变小的圆环实例
2015/08/05 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
js添加事件的通用方法推荐
2016/05/15 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
JS利用正则表达式实现简单的密码强弱判断实例
2017/06/16 Javascript
详解Webpack + ES6 最新环境搭建与配置
2018/06/04 Javascript
JS实现判断数组是否包含某个元素示例
2019/05/24 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
2020/05/12 Javascript
python获取指定时间差的时间实例详解
2017/04/11 Python
python保存字典和读取字典的实例代码
2019/07/07 Python
python之yield和Generator深入解析
2019/09/18 Python
python实现宿舍管理系统
2019/11/22 Python
英国假睫毛购买网站:FalseEyelashes.co.uk
2018/05/23 全球购物
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
小学新学期教师寄语
2014/01/18 职场文书
歌颂祖国演讲稿
2014/05/04 职场文书
社区先进事迹材料
2014/05/19 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
任命书怎么写
2015/03/02 职场文书
办公室主任岗位职责范本
2015/03/31 职场文书
商场营业员岗位职责
2015/04/14 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书