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 相关文章推荐
简介Django框架中可使用的各类缓存
Jul 23 Python
python 实现网上商城,转账,存取款等功能的信用卡系统
Jul 15 Python
浅谈Python在pycharm中的调试(debug)
Nov 29 Python
Python二进制文件读取并转换为浮点数详解
Jun 25 Python
python 处理微信对账单数据的实例代码
Jul 19 Python
Python字节单位转换实例
Dec 05 Python
Python 简单计算要求形状面积的实例
Jan 18 Python
pycharm 设置项目的根目录教程
Feb 12 Python
基于Python实现体育彩票选号器功能代码实例
Sep 16 Python
Python Sqlalchemy如何实现select for update
Oct 12 Python
Python使用eval函数执行动态标表达式过程详解
Oct 17 Python
python 爬虫请求模块requests详解
Dec 04 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+MySQL实现的简单投票系统实例
2016/02/24 PHP
javascript 二维数组的实现与应用
2010/03/16 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
Javascript 闭包详解及实例代码
2016/11/30 Javascript
javascript数据结构中栈的应用之符号平衡问题
2017/04/11 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
Redux实现组合计数器的示例代码
2018/07/04 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
2020/03/03 Javascript
js实现简单放大镜效果
2020/03/07 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
Javascript节流函数throttle和防抖函数debounce
2020/12/03 Javascript
react项目从新建到部署的实现示例
2021/02/19 Javascript
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
Python安装第三方库的3种方法
2015/06/21 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
python操作docx写入内容,并控制文本的字体颜色
2020/02/13 Python
python递归调用中的坑:打印有值, 返回却None
2020/03/16 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
python如何实现DES加密
2020/09/21 Python
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
迪梵英国官方网站:Darphin英国
2017/12/06 全球购物
波兰汽车配件网上商店:iParts.pl
2020/09/08 全球购物
护士自我鉴定范文
2013/10/06 职场文书
迟到检讨书5000字
2014/01/31 职场文书
竞选生活委员演讲稿
2014/04/28 职场文书
纪念九一八事变演讲稿:青少年应树立远大理想
2014/09/14 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
2014年房地产销售工作总结
2014/12/01 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书