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中集合类型(set)学习小结
Jan 28 Python
分享Python文本生成二维码实例
Jan 06 Python
Python中index()和seek()的用法(详解)
Apr 27 Python
Python迭代器和生成器定义与用法示例
Feb 10 Python
python如何创建TCP服务端和客户端
Aug 26 Python
Python实现分段线性插值
Dec 17 Python
Python获取时间范围内日期列表和周列表的函数
Aug 05 Python
基于python3实现倒叙字符串
Feb 18 Python
python模拟实现分发扑克牌
Apr 22 Python
解决keras使用cov1D函数的输入问题
Jun 29 Python
Python常用扩展插件使用教程解析
Nov 02 Python
PyQt 如何创建自定义QWidget
Mar 24 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简单实例代码
2009/12/16 PHP
利用php获取服务器时间的实现代码
2013/06/07 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
利用PHP绘图函数实现简单验证码功能的方法
2016/10/18 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
php依赖注入知识点详解
2019/09/23 PHP
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
Extjs grid panel自带滚动条失效的解决方法
2014/09/11 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
JavaScript实现简单的四则运算计算器完整实例
2017/04/28 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
使用Nodejs连接mongodb数据库的实现代码
2017/08/21 NodeJs
p5.js入门教程之键盘交互
2018/03/19 Javascript
vue项目引入字体.ttf的方法
2018/09/28 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
Vue函数式组件的应用实例详解
2019/08/30 Javascript
基于javascript实现日历功能原理及代码实例
2020/05/07 Javascript
Python对列表排序的方法实例分析
2015/05/16 Python
Python实现统计单词出现的个数
2015/05/28 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
2017/12/20 Python
django云端留言板实例详解
2019/07/22 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
用canvas做一个DVD待机动画的实现代码
2019/04/12 HTML / CSS
廉价航班、机票和酒店:JustFly
2018/02/07 全球购物
情人节寄语大全
2014/04/11 职场文书
小学母亲节活动总结
2015/02/10 职场文书
统计员岗位职责
2015/02/11 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python
Python实现排序方法常见的四种
2021/07/15 Python