python从ftp下载数据保存实例

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

(0)

相关推荐

  • python3实现ftp服务功能(服务端 For Linux)

    本文实例为大家分享了python3实现ftp服务功能的具体代码,供大家参考,具体内容如下 功能介绍: 可执行的命令: ls pwd cd put rm get mkdir 1.用户加密认证 2.允许多用户同时登陆 3.每个用户有自己的家目录,且只可以访问自己的家目录 4.运行在自己家目录下随意切换目录 5.允许上传下载文件,且文件一致 6.传输过程中显示进度条 server main 代码: # Author by Andy # _*_ coding:utf-8 _*_ import os, s

  • python实现类似ftp传输文件的网络程序示例

    此代码在linux上编写,适用于linux,windows下需要更改几个命令.1.客户端输入IP,端口,可服务器端进行连接,被要求输入用户名和密码进行验证.2.使用独立的模块来验证登录用户(技术有限,不支持客户端创建用户),用户名:ftpuser  密码:userlogin2.客户端登录验证成功后,可使用?或者help查看可使用的命令. ftpserver.py 复制代码 代码如下: #!/usr/bin/env python#-*- coding:utf-8 "Program for ftp

  • python3实现ftp服务功能(客户端)

    本文实例为大家分享了python3实现ftp服务功能的具体代码,供大家参考,具体内容如下 客户端 main代码: #Author by Andy #_*_ coding:utf-8 _*_ ''' This program is used to create a ftp client ''' import socket,os,json,time,hashlib,sys class Ftp_client(object): def __init__(self): self.client = sock

  • python连接远程ftp服务器并列出目录下文件的方法

    本文实例讲述了python连接远程ftp服务器并列出目录下文件的方法.分享给大家供大家参考.具体如下: 这段python代码用到了pysftp模块,使用sftp协议,对数据进行加密传输 import pysftp srv = pysftp.Connection(host="your_FTP_server", username="your_username",password="your_password") # Get the directory

  • python实现ftp客户端示例分享

    复制代码 代码如下: #!/usr/bin/python#coding:utf-8#write:JACK#info:ftp exampleimport ftplib, socket, osfrom time import sleep, ctime def LoginFtp(self):        ftps = ftplib.FTP()        ftps.connect(self.host,self.port)        ftps.login(self.name,self.passw

  • 通过python下载FTP上的文件夹的实现代码

    复制代码 代码如下: # -*- encoding: utf8 -*-import osimport sysimport ftplibclass FTPSync(object):    def __init__(self):        self.conn = ftplib.FTP('10.22.33.46', 'user', 'pass')        self.conn.cwd('/')        # 远端FTP目录        os.chdir('/data/')       

  • python实现从ftp服务器下载文件的方法

    本文实例讲述了python实现从ftp服务器下载文件的方法.分享给大家供大家参考.具体实现方法如下: import ftplib ftp = ftblib.FTP("ftp.yourServer.com") ftp.login("username","password") filename = "index.html" ftp.storlines("STOR "+filename,open(filename

  • 400多行Python代码实现了一个FTP服务器

    Python版本 实现了比之前的xxftp更多更完善的功能 1.继续支持多用户 2.继续支持虚拟目录 3.增加支持用户根目录以及映射虚拟目录的权限设置 4.增加支持限制用户根目录或者虚拟目录的空间大小 xxftp的特点 1.开源.跨平台 2.简单.易用 3.不需要数据库 4.可扩展性超强 5.你可以免费使用xxftp假设自己的私人FTP服务器 测试地址 ftp://xiaoxia.org 匿名帐号可以使用! 匿名根目录只读,映射了一个虚拟目录,可以上传文件但不允许更改! 使用方法 跟之前用C语言

  • python实现支持目录FTP上传下载文件的方法

    本文实例讲述了python实现支持目录FTP上传下载文件的方法.分享给大家供大家参考.具体如下: 该程序支持ftp上传下载文件和目录.适用于windows和linux平台. #!/usr/bin/env python # -*- coding: utf-8 -*- import ftplib import os import sys class FTPSync(object): conn = ftplib.FTP() def __init__(self,host,port=21): self.c

  • python实现的简单FTP上传下载文件实例

    本文实例讲述了python实现的简单FTP上传下载文件的方法.分享给大家供大家参考.具体如下: python本身自带一个FTP模块,可以实现上传下载的函数功能. #!/usr/bin/env python # -*- coding: utf-8 -*- from ftplib import FTP def ftp_up(filename = "20120904.rar"): ftp=FTP() ftp.set_debuglevel(2) #打开调试级别2,显示详细信息;0为关闭调试信息

随机推荐