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 11 Python
matplotlib在python上绘制3D散点图实例详解
Dec 09 Python
Python装饰器用法示例小结
Feb 11 Python
python opencv之SIFT算法示例
Feb 24 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
Apr 12 Python
pandas 使用apply同时处理两列数据的方法
Apr 20 Python
详解Python中的内建函数,可迭代对象,迭代器
Apr 29 Python
解决Pytorch 加载训练好的模型 遇到的error问题
Jan 10 Python
解决Tensorflow占用GPU显存问题
Feb 03 Python
Python Numpy,mask图像的生成详解
Feb 19 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
Mar 03 Python
python实现学生信息管理系统源码
Feb 22 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开发大型项目的一点经验
2006/10/09 PHP
dedecms后台验证码总提示错误的解决方法
2007/03/21 PHP
yii2中使用Active Record模式的方法
2016/01/09 PHP
php实现文件与16进制相互转换的方法示例
2017/02/16 PHP
php+mysql+ajax实现单表多字段多关键词查询的方法
2017/04/15 PHP
php模式设计之观察者模式应用实例分析
2019/09/25 PHP
JavaScript定时显示广告代码分享
2015/03/02 Javascript
JavaScript操作表单实例讲解(上)
2016/06/20 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
JavaScript 异步调用
2017/10/25 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
vue2.0 子组件改变props值,并向父组件传值的方法
2018/03/01 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
webpack4从0搭建组件库的实现
2020/11/29 Javascript
[05:42]DOTA2英雄梦之声_第10期_蝙蝠骑士
2014/06/21 DOTA
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
使用Pyrex来扩展和加速Python程序的教程
2015/04/13 Python
详解Python的Lambda函数与排序
2016/10/25 Python
Python实现的选择排序算法示例
2017/11/29 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
Flask之请求钩子的实现
2018/12/23 Python
对python:threading.Thread类的使用方法详解
2019/01/31 Python
python使用itchat模块给心爱的人每天发天气预报
2019/11/25 Python
Python类的动态绑定实现原理
2020/03/21 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
国际知名军事风格休闲装品牌:Alpha Industries(阿尔法工业)
2017/05/24 全球购物
COACH德国官方网站:纽约现代奢侈品牌,1941年
2018/06/09 全球购物
BAILEY 44官网:美国制造的女性服装
2019/07/01 全球购物
先进党支部事迹材料
2014/01/13 职场文书
公司活动总结怎么写
2014/06/25 职场文书
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
2022/04/11 PHP