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 datetime时间格式化去掉前导0
Jul 31 Python
python实现域名系统(DNS)正向查询的方法
Apr 19 Python
Python实现文件内容批量追加的方法示例
Aug 29 Python
python处理csv数据动态显示曲线实例代码
Jan 23 Python
详解PyTorch批训练及优化器比较
Apr 28 Python
python 读取txt,json和hdf5文件的实例
Jun 05 Python
Python简单读写Xls格式文档的方法示例
Aug 17 Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 Python
详解Python直接赋值,深拷贝和浅拷贝
Jul 09 Python
Opencv 图片的OCR识别的实战示例
Mar 02 Python
python状态机transitions库详解
Jun 02 Python
深入理解Pytorch微调torchvision模型
Nov 11 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
DIY实用性框形天线
2021/03/02 无线电
PHP5 字符串处理函数大全
2010/03/23 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
一段实用的php验证码函数
2016/05/19 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
jQuery动画animate方法使用介绍
2013/05/06 Javascript
JS+CSS实现一个气泡提示框
2013/08/18 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
2013/11/22 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
JQuery调用绑定click事件的3种写法
2015/03/28 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
浅谈JS的基础类型与引用类型
2016/09/13 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
Angular实现搜索框及价格上下限功能
2018/01/19 Javascript
react配合antd组件实现的管理系统示例代码
2018/04/24 Javascript
iView-admin 动态路由问题的解决方法
2018/10/03 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
ES6 Object.assign()的用法及其使用
2020/01/18 Javascript
[52:08]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第一局
2016/03/05 DOTA
python读取Android permission文件
2013/11/01 Python
探究python中open函数的使用
2016/03/01 Python
Python实现二维有序数组查找的方法
2016/04/27 Python
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
python贪婪匹配以及多行匹配的实例讲解
2018/04/19 Python
Python二进制串转换为通用字符串的方法
2018/07/23 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
对python dataframe逻辑取值的方法详解
2019/01/30 Python
pycharm中显示CSS提示的知识点总结
2019/07/29 Python
TensorFlow-gpu和opencv安装详细教程
2020/06/30 Python
遇到的Mysql的面试题
2014/06/29 面试题
迎国庆演讲稿
2014/09/05 职场文书
爱国电影观后感
2015/06/19 职场文书
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB