python从ftp下载数据保存实例

yipeiwu_com6年前Python基础

《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实现三次样条插值

本文实例为大家分享了python实现三次样条插值的具体代码,供大家参考,具体内容如下 函数: 算法分析 三次样条插值。就是在分段插值的一种情况。 要求: 在每个分段区间上是三次多...

python矩阵/字典实现最短路径算法

python矩阵/字典实现最短路径算法

前言:好像感觉各种博客的最短路径python实现都花里胡哨的?输出不明显,唉,可能是因为不想读别人的代码吧(明明自己学过离散)。然后可能有些人是用字典实现的?的确字典的话,比较省空间。改...

Python中 Global和Nonlocal的用法详解

Python中 Global和Nonlocal的用法详解

nonlocal 和 global 也很容易混淆。简单记录下自己的理解。 解释 global 总之一句话,作用域是全局的,就是会修改这个变量对应地址的值。 global 语句是一个声...

python获取外网ip地址的方法总结

本文实例总结了python获取外网ip地址的方法。分享给大家供大家参考。具体如下: 一、利用脚本引擎库直接获取 import console; import web.script i...

在cmder下安装ipython以及环境的搭建

在cmder下安装ipython以及环境的搭建

打开cmder 1.移动到D盘 输入命令:D: 2.创建文件夹 λ mkdir myApp 3.创建python自带的虚拟环境 λ python -m venv...