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()

  • 相关阅读:
    javascript函数的定义和调用(包括方法)
    iterable(遍历)
    循环
    C#基础知识 简单说明泛型的优点
    C#基础知识 yield与foreach
    C#基础知识 结构与类的区别
    Asp.net MVC 生成zip并下载
    Asp.net MVC 填充word并下载
    Asp.net MVC 简单实现生成Excel并下载
    CTF中怎么看phpinfo
  • 原文地址:https://www.cnblogs.com/rosesmall/p/3479809.html
Copyright © 2011-2022 走看看