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 02 Python
Python合并多个装饰器小技巧
Apr 28 Python
Python request设置HTTPS代理代码解析
Feb 12 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
Apr 18 Python
python3个性签名设计实现代码
Jun 19 Python
python写入文件自动换行问题的方法
Jul 05 Python
pytorch 输出中间层特征的实例
Aug 17 Python
Python 内置函数globals()和locals()对比详解
Dec 23 Python
keras tensorflow 实现在python下多进程运行
Feb 06 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
May 26 Python
Python 实现简单的客户端认证
Jul 29 Python
Django中日期时间型字段进行年月日时分秒分组统计
Nov 27 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下对数组进行排序的函数
2010/08/08 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
javascript复制对象使用说明
2011/06/28 Javascript
js对象与打印对象分析比较
2013/04/23 Javascript
javascript常用的正则表达式实例
2014/05/15 Javascript
javascript获得当前的信息的一些常用命令
2015/02/25 Javascript
javascript实现控制的多级下拉菜单
2015/07/05 Javascript
学习JavaScript设计模式之代理模式
2016/01/12 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
关于jquery form表单序列化的注意事项详解
2017/08/01 jQuery
利用nginx + node在阿里云部署https的步骤详解
2017/12/19 Javascript
微信小程序错误this.setData报错及解决过程
2019/09/18 Javascript
ant design实现圈选功能
2019/12/17 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
Linux下多个Python版本安装教程
2018/08/15 Python
numpy数组之存取文件的实现示例
2019/05/24 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
浅谈django2.0 ForeignKey参数的变化
2019/08/06 Python
Python unittest框架操作实例解析
2020/04/13 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
HTML5拖放API实现自动生成相框功能
2020/04/07 HTML / CSS
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
商得四方公司面试题(gid+)
2014/04/30 面试题
建筑班组长岗位职责
2014/01/02 职场文书
即兴演讲稿
2014/01/04 职场文书
企业内部培训方案
2014/02/04 职场文书
校园安全广播稿
2014/02/08 职场文书
年会搞笑主持词
2014/03/27 职场文书
小学生节约用水倡议书
2014/05/15 职场文书
民事答辩状范本
2015/05/21 职场文书
郭明义电影观后感
2015/06/08 职场文书
2015初中政治教学工作总结
2015/07/21 职场文书
公司会议开幕词
2016/03/03 职场文书
Python 中 Shutil 模块详情
2021/11/11 Python