fengfenggirl

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

 

分类:

技术点:

相关文章:

  • 2021-07-06
  • 2021-09-12
  • 2021-11-11
  • 2022-02-15
  • 2018-06-22
  • 2021-09-09
  • 2021-12-25
猜你喜欢
  • 2021-11-24
  • 2021-07-05
  • 2021-06-10
  • 2021-11-28
  • 2021-04-21
  • 2021-10-04
  • 2021-09-04
相关资源
相似解决方案