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 random模块常用方法
Nov 03 Python
Python统计日志中每个IP出现次数的方法
Jul 06 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
Jul 27 Python
Python3中的真除和Floor除法用法分析
Mar 16 Python
Python利用前序和中序遍历结果重建二叉树的方法
Apr 27 Python
酷! 程序员用Python带你玩转冲顶大会
Jan 17 Python
Numpy之reshape()使用详解
Dec 26 Python
Django中的session用法详解
Mar 09 Python
python 读取二进制 显示图片案例
Apr 24 Python
pycharm中leetcode插件使用图文详解
Dec 07 Python
python中altair可视化库实例用法
Jan 26 Python
利用Python多线程实现图片下载器
Mar 25 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
PDO::getAttribute讲解
2019/01/28 PHP
childNodes.length与children.length的区别
2009/05/14 Javascript
原创javascript小游戏实现代码
2010/08/19 Javascript
Safari5中alert的无限循环BUG
2011/04/07 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
js正则表达式中test,exec,match方法的区别说明
2014/01/29 Javascript
JQuery弹出层示例可自定义
2014/05/19 Javascript
jQuery中ajax的load()方法用法实例
2014/12/26 Javascript
JavaScript返回网页中超链接数量的方法
2015/04/03 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
2017/08/31 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
[01:02:48]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 LGD vs OG
2018/04/02 DOTA
ubuntu环境下python虚拟环境的安装过程
2018/01/07 Python
通过Pandas读取大文件的实例
2018/06/07 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
Python matplotlib修改默认字体的操作
2020/03/05 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
HTML5 在canvas中绘制文本附效果图
2014/06/23 HTML / CSS
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
.net工程师笔试题
2012/06/09 面试题
怎样写好创业计划书的内容
2014/02/06 职场文书
机关工会开展学习雷锋活动总结
2014/03/01 职场文书
创建学习型党组织实施方案
2014/03/29 职场文书
经典的毕业生自荐信范文
2014/04/14 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
导游词之永泰公主墓
2019/12/04 职场文书
MySQL示例讲解数据库约束以及表的设计
2022/06/16 MySQL