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中操作列表之List.append()方法的使用
May 20 Python
Python中音频处理库pydub的使用教程
Jun 07 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
Nov 15 Python
Python排序搜索基本算法之希尔排序实例分析
Dec 09 Python
把csv文件转化为数组及数组的切片方法
Jul 04 Python
python实现flappy bird游戏
Dec 24 Python
Python实现求两个数组交集的方法示例
Feb 23 Python
python实现静态web服务器
Sep 03 Python
Python操作redis和mongoDB的方法
Dec 19 Python
Python3+Selenium+Chrome实现自动填写WPS表单
Feb 12 Python
Python基于Socket实现简单聊天室
Feb 17 Python
python实现将range()函数生成的数字存储在一个列表中
Apr 02 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
php运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
PHP中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
php多任务程序实例解析
2014/07/19 PHP
PHP输出一个等腰三角形的方法
2015/05/12 PHP
[原创]php求圆周率的简单实现方法
2016/05/30 PHP
PHP实现搜索时记住状态的方法示例
2018/05/11 PHP
jQuery AJAX回调函数this指向问题
2010/02/08 Javascript
使用npm发布Node.JS程序包教程
2015/03/02 Javascript
Easyui form combobox省市区三级联动
2016/01/13 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
webpack4 SCSS提取和懒加载的示例
2018/09/03 Javascript
JS实现简单的文字无缝上下滚动功能示例
2019/06/22 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
layui实现下拉复选功能的例子(包括数据的回显与上传)
2019/09/24 Javascript
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
Python 返回汉字的汉语拼音
2009/02/27 Python
python实现批量改文件名称的方法
2015/05/25 Python
python操作redis的方法
2015/07/07 Python
python 网络爬虫初级实现代码
2016/02/27 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
2018/02/21 Python
HTML5 解析规则分析
2009/08/14 HTML / CSS
爱尔兰家电数码商城:Currys PC World爱尔兰
2016/07/23 全球购物
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
法国最大电子商务平台:Cdiscount
2018/03/13 全球购物
关于爱情的广播稿
2014/01/16 职场文书
法人委托书范本
2014/04/04 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
法定代表人资格证明书
2014/09/11 职场文书
学生打架检讨书
2014/10/20 职场文书
倡议书格式及范文
2015/04/29 职场文书
会计做账心得体会
2016/01/22 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书