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接收多播数据的代码
Mar 01 Python
python利用hook技术破解https的实例代码
Mar 25 Python
浅析Python中的多条件排序实现
Jun 07 Python
Python简单实现安全开关文件的两种方式
Sep 19 Python
python 除法保留两位小数点的方法
Jul 16 Python
Python 3.8新特征之asyncio REPL
May 28 Python
如何用Python破解wifi密码过程详解
Jul 12 Python
Pycharm 2020年最新激活码(亲测有效)
Sep 18 Python
python库skimage给灰度图像染色的方法示例
Apr 27 Python
python中tab键是什么意思
Jun 18 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
Aug 07 Python
详解python UDP 编程
Aug 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
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
如何给phpcms v9增加类似于phpcms 2008中的关键词表
2013/07/01 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
javascript Zifa FormValid 0.1表单验证 代码打包下载
2007/06/08 Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
2013/07/03 Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
2013/11/13 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
jQuery中has()方法用法实例
2015/01/06 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
2015/03/13 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
2015/07/27 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
浅谈Angular的$q, defer, promise
2016/12/20 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
js实现计算器功能
2020/08/10 Javascript
[47:04]LGD vs infamous Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
Python实现 版本号对比功能的实例代码
2019/04/18 Python
python 装饰器的基本使用
2021/01/13 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
HTML5 WebSocket实现点对点聊天的示例代码
2018/01/31 HTML / CSS
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
Senreve官网:美国旧金山的奢侈手袋品牌
2019/03/21 全球购物
会计岗位描述
2014/02/22 职场文书
六一亲子活动感想
2015/08/07 职场文书
一文搞懂php的垃圾回收机制
2021/06/18 PHP
收音机爱好者玩机13年,简评其使用过的19台收音机
2022/04/30 无线电