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 fabric实现远程操作和部署示例
Mar 25 Python
python安装与使用redis的方法
Apr 19 Python
高效测试用例组织算法pairwise之Python实现方法
Jul 19 Python
python 读入多行数据的实例
Apr 19 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
May 08 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
Python 爬虫实现增加播客访问量的方法实现
Oct 31 Python
pygame库实现移动底座弹球小游戏
Apr 14 Python
pytorch 模拟关系拟合——回归实例
Jan 14 Python
Python实现bilibili时间长度查询的示例代码
Jan 14 Python
python如何通过闭包实现计算器的功能
Feb 22 Python
python使用列表的最佳方案
Aug 12 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 xml-rpc远程调用
2008/12/19 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
2010/05/18 PHP
PHP strstr 函数判断字符串是否否存在的实例代码
2013/09/28 PHP
PHP用身份证号获取星座和生肖的方法
2013/11/07 PHP
php中substr()函数参数说明及用法实例
2014/11/15 PHP
ThinkPHP实现更新数据实例详解(demo)
2016/06/29 PHP
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
2007/03/12 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
eclipse如何忽略js文件报错(附图)
2013/10/30 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
JavaScript数据结构和算法之二叉树详解
2015/02/11 Javascript
详解JavaScript中getFullYear()方法的使用
2015/06/10 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
jquery 禁止鼠标右键并监听右键事件
2017/04/27 jQuery
Angular表格神器ui-grid应用详解
2017/09/29 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
nodejs基础之常用工具模块util用法分析
2018/12/26 NodeJs
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
Python简单实现enum功能的方法
2016/04/25 Python
Python最火、R极具潜力 2017机器学习调查报告
2017/12/11 Python
python初学之用户登录的实现过程(实例讲解)
2017/12/23 Python
pandas 两列时间相减换算为秒的方法
2018/04/20 Python
python调用摄像头显示图像的实例
2018/08/03 Python
Python 日期区间处理 (本周本月上周上月...)
2019/08/08 Python
Python中zip()函数的简单用法举例
2019/09/02 Python
Python生成器常见问题及解决方案
2020/03/21 Python
python根据字典的键来删除元素的方法
2020/08/16 Python
python lambda的使用详解
2021/02/26 Python
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
Trip.com澳大利亚:在线旅行社
2019/12/01 全球购物
绝对经典成功的大学生推荐信
2013/11/08 职场文书
小学生美德少年事迹
2014/02/02 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书