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输出PowerPoint(ppt)文件中全部文字信息的方法
Apr 28 Python
Python中异常重试的解决方案详解
May 05 Python
python安装Scrapy图文教程
Aug 14 Python
Python3爬虫之自动查询天气并实现语音播报
Feb 21 Python
python实现单链表的方法示例
Sep 03 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
Oct 28 Python
python 计算积分图和haar特征的实例代码
Nov 20 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
Feb 15 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
May 27 Python
浅谈优化Django ORM中的性能问题
Jul 09 Python
Python实现EM算法实例代码
Oct 04 Python
Python使用Web框架Flask开发项目
Jun 01 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
BBS(php &amp; mysql)完整版(五)
2006/10/09 PHP
PHP反射机制用法实例
2014/08/28 PHP
PHP使用glob函数遍历目录或文件夹的方法
2014/12/16 PHP
浅谈php的优缺点
2015/07/14 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
2017/08/11 PHP
斜45度寻路实现函数
2009/08/20 Javascript
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
深入分析jsonp协议原理
2015/09/26 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
2016/05/10 Javascript
ionic实现带字的toggle滑动组件
2016/08/27 Javascript
vuejs父子组件之间数据交互详解
2017/08/09 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
vue-cli 为项目设置别名的方法
2019/10/15 Javascript
layui 弹出层值回传解决方式
2019/11/14 Javascript
vscode调试node.js的实现方法
2020/03/22 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
2020/04/13 Javascript
vue中echarts引入中国地图的案例
2020/07/28 Javascript
jQuery实现简单弹幕制作
2020/12/10 jQuery
Django中使用group_by的方法
2015/05/26 Python
Python 爬虫模拟登陆知乎
2016/09/23 Python
Python中支持向量机SVM的使用方法详解
2017/12/26 Python
python使用tornado实现简单爬虫
2018/07/28 Python
Python 访问限制 private public的详细介绍
2018/10/16 Python
Python 求数组局部最大值的实例
2019/11/26 Python
基于python实现查询ip地址来源
2020/06/02 Python
Python爬虫开发与项目实战
2020/12/16 Python
ASOS英国官网:英国在线时装和化妆品零售商
2017/05/19 全球购物
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
作文评语大全
2014/04/23 职场文书
食品销售计划书
2014/04/26 职场文书
地球上的星星观后感
2015/06/02 职场文书
入党自传范文2015
2015/06/26 职场文书
2015入党个人自传范文
2015/06/26 职场文书
MySQL通过binlog恢复数据
2021/05/27 MySQL