zoukankan      html  css  js  c++  java
  • 转:Python 从FTP 下载数据的例子

    《hadoop权威指南》的天气数据可以在ftp://ftp3.ncdc.noaa.gov/pub/data/noaa下载,在网上看到这个数据好开心,打开ftp发现个问题,呀呀,这么多文件啊,我一个个去点另存为,得点到啥时候啊,迅雷应该有批量下载,只是我没找到,估计是我浏览器把迅雷禁掉了,干脆自己用python写一个实现下载好了,网上早了一下,发现很简单啊

    Python 从FTP 下载数据的例子:

    #!/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()

  • 相关阅读:
    正则
    springboot整合rabbitmq(fanout广播模式)
    docker 安装rabbitmq
    centos7安装rabbitmq
    rabbitmq报错{:query, :rabbit@master1, {:badrpc, :timeout}}
    Linux永久修改hostname
    thread dump日志文件分析
    模板方法模式
    装饰器模式
    springboot集成redis,压测报错;
  • 原文地址:https://www.cnblogs.com/rosesmall/p/3479809.html
Copyright © 2011-2022 走看看