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 09 Python
Python基于select实现的socket服务器
Apr 13 Python
Python实现的圆形绘制(画圆)示例
Jan 31 Python
pycharm 取消默认的右击运行unittest的方法
Nov 29 Python
python多进程读图提取特征存npy
May 21 Python
django 环境变量配置过程详解
Aug 06 Python
在 Python 中接管键盘中断信号的实现方法
Feb 04 Python
Python接口测试get请求过程详解
Feb 28 Python
jupyter notebook参数化运行python方式
Apr 10 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
Apr 14 Python
Python如何向SQLServer存储二进制图片
Jun 08 Python
Jupyter Notebook 如何修改字体和大小以及更改字体样式
Jun 03 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 setcookie设置Cookie用法(及设置无效的问题)
2011/07/13 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
jQuery版Tab标签切换
2011/03/16 Javascript
用jquery实现输入框获取焦点消失文字
2013/04/27 Javascript
js日期联动示例
2014/05/02 Javascript
兼容最新firefox、chrome和IE的javascript图片预览实现代码
2014/08/08 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
2014/12/28 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
Jquery ajax请求导出Excel表格的实现代码
2016/06/08 Javascript
js两种拼接字符串的简单方法(必看)
2016/09/02 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2017/04/27 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
jQuery实现轮播图及其原理详解
2020/04/12 jQuery
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
详解实现一个通用的“划词高亮”在线笔记功能
2019/04/23 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
vue中echarts引入中国地图的案例
2020/07/28 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
跟老齐学Python之集成开发环境(IDE)
2014/09/12 Python
Python爬虫DNS解析缓存方法实例分析
2017/06/02 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
OpenCV+python实现实时目标检测功能
2020/06/24 Python
基于Python的自媒体小助手---登录页面的实现代码
2020/06/29 Python
H5最强接口之canvas实现动态图形功能
2019/05/31 HTML / CSS
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
空指针到底是什么
2012/08/07 面试题
超市总经理岗位职责
2014/02/02 职场文书
工程服务质量承诺书
2015/04/29 职场文书
python中%格式表达式实例用法
2021/06/18 Python
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技