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实现正则检测密码合法性
Jan 05 Python
python中string模块各属性以及函数的用法介绍
May 30 Python
Python进行数据提取的方法总结
Aug 22 Python
Python 安装setuptools和pip工具操作方法(必看)
May 22 Python
Python实现感知器模型、两层神经网络
Dec 19 Python
python 寻找优化使成本函数最小的最优解的方法
Dec 28 Python
python实现拓扑排序的基本教程
Mar 11 Python
解决Pycharm中import时无法识别自己写的程序方法
May 18 Python
Python实现UDP程序通信过程图解
May 15 Python
解决keras模型保存h5文件提示无此目录问题
Jul 01 Python
python 逆向爬虫正确调用 JAR 加密逻辑
Jan 12 Python
python 多线程爬取壁纸网站的示例
Feb 20 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/14 PHP
PHP中的静态变量及static静态变量使用详解
2015/11/05 PHP
javascript prototype,executing,context,closure
2008/12/24 Javascript
jquery的键盘事件修改代码
2011/02/24 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
jQuery处理xml格式的返回数据(实例解析)
2013/11/28 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
深入理解React中es6创建组件this的方法
2016/08/29 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
p5.js入门教程之图片加载
2018/03/20 Javascript
微信小程序实现签到功能
2018/10/31 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
Django 如何获取前端发送的头文件详解(推荐)
2017/08/15 Python
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
英国领先的高级美容和在线皮肤诊所:Face the Future
2020/06/17 全球购物
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
2013/05/18 面试题
应届毕业生的自我鉴定
2013/11/13 职场文书
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
水利水电专业自荐信
2014/07/08 职场文书
2014年妇产科工作总结
2014/12/08 职场文书
青岛海底世界导游词
2015/02/11 职场文书
企业培训简报范文
2015/07/20 职场文书
董事长新年致辞
2015/07/29 职场文书
Python机器学习三大件之一numpy
2021/05/10 Python
实例讲解Python中sys.argv[]的用法
2021/06/03 Python