zoukankan      html  css  js  c++  java
  • python使用ftplib做ftp操作

    ftplib是 Python的内置的一个标准模块,它提供了极强大的对FTP服务器的操作,通过它我们可以连接并操作FTP服务端,开始练习:

    一、导入模块并进行连接

    >>> from ftplib import FTP >>> ftp = FTP(‘ftp.yabogo.com’) >>> ftp.login(‘yourloginname’,'password’) 

    FTP登录成功

    连接到FTP可还有如下形式:

    1、实例化并直接连接,ftp=FTP(host=”, user=”, passwd=”, acct=”, timeout=”)

    2、先实例ftp=FTP(), 再使用 connect(host=”, port=0, timeout=-999)连接,最后login(user=”, passwd=”)

    二、查看目录文件或更改目录

    >>> ftp.retrlines(‘LIST’) 

    1、retrlines(cmd)是以文本形式查看当前目录文件,可用cmd:RETR, LIST, NLST, MLSD

    2、如果要指定查看某个目录的文件列表,可以用dir(dirname) ,dirname是可选参数,默认是当前目录;

    3、cwd(dirname), 更改目录! Change to a directory.

    三、查看文件的大小

    >>> ftp.size(‘yabogo_logo.gif’) 2452

    四、ftp上传一个文件

    >>> fp=open(‘F:/test.php’,'rb’)
    >>> ftp.storbinary(‘STOR test.php’,fp)

    二进上传文件成功

    storbinary( cmd, fp, blocksize=8192, callback=None, rest=None)
    Args:
              cmd: A STOR command.
              fp: A file-like object with a read(num_bytes) method.
              blocksize: The maximum data size to read from fp and send over
                         the connection at once.  [default: 8192]
              callback: An optional single parameter callable that is called on
                        on each block of data after it is sent.  [default: None]
              rest: Passed to transfercmd().  [default: None]
    
            Returns:
              The response code.
    

    五、退出关闭,并退出FTP

    >>> ftp.quit() 221 Goodbye, logging out.’

    ftplib有很多可用的方法,导入模块后可通过help()查看帮助信息。



    >>> from ftplib import FTP
    >>> ftp=FTP('ftp.python.org')
    >>> ftp.login()
    '230 Login successful.'
    >>> ftp.dir()
    drwxrwxr-x 7 1004 1004 512 Aug 13 01:35 pub
    >>> ftp.cwd('pub')
    '250 Directory successfully changed.'
    >>> ftp.dir()
    drwxrwxr-x 5 1000 1004 1024 Dec 24 11:04 docs.python.org
    drwxrwsr-x 2 1002 1004 512 Oct 12 2001 jython
    lrwx------ 1 0 1003 25 Aug 03 2001 python -> 
    www.python.org/ftp/python
    drwxr-xr-x 9 1018 1004 512 Feb 02 03:44 pyvault
    drwxr-xr-x 2 1005 1004 512 May 06 2003 tmp
    drwxrwsr-x 59 1004 1004 3072 Feb 03 14:58 
    http://www.python.org/
    >>> ftp.quit()
    '221 Goodbye.'


    下面一个下载文件的示例

    #!/usr/bin/env python

    #author:Jims of 
    http://www.ringkee.com/
    #create date: 2005/02/05
    #description: Using ftplib module download a file from a ftp server.

    from ftplib import FTP

    ftp=FTP()

    ftp.set_debuglevel(2) #打开调试级别2,显示详细信息
    ftp.connect('ftp_server','port') #连接
    ftp.login('username','password') #登录,如果匿名登录则用空串代替即可

    print ftp.getwelcome() #显示ftp服务器欢迎信息
    ftp.cwd('xxx/xxx/') #选择操作目录
    bufsize = 1024 #设置缓冲块大小
    filename='dog.jpg' 
    file_handler = open(filename,'wb').write #以写模式在本地打开文件
    ftp.retrbinary('RETR dog.jpg',file_handler,bufsize) #接收服务器上文件并写入本地文件
    ftp.set_debuglevel(0) #关闭调试

    ftp.quit() #退出ftp服务器

    下面一个上传文件的示例,要成功运行该脚本,需在ftp服务器上有上传文件的权限。

    #!/usr/bin/env python

    #author:Jims of 
    http://www.ringkee.com/
    #create date: 2005/02/05
    #description: Using ftplib module upload a file to a ftp server.

    from ftplib import FTP

    ftp=FTP()

    ftp.set_debuglevel(2)
    ftp.connect('ftp_server','port')
    ftp.login('username','password')

    print ftp.getwelcome()
    ftp.cwd('xxx/xxx/')
    bufsize = 1024
    filename='dog.jpg'
    file_handler = open(filename,'rb')
    ftp.storbinary('STOR dog.jpg',file_handler,bufsize) #上传文件
    ftp.set_debuglevel(0)

    file_handler.close() #关闭文件
    ftp.quit()

  • 相关阅读:
    洛谷P1661 扩散
    Vijos1056 图形面积
    Python爬取猪肉价格网并获取Json数据
    C#中巧用Lambda表达式实现对象list进行截取
    Winform中在ZedGraph中最多可以添加多少条曲线
    Nginx配置实例-动静分离实例:搭建静态资源服务器
    解决pip使用异常No module named 'pip'
    C#在循环中使用Random时生成的随机数相同的解决办法
    Winform中自定义ZedGraph右键复制成功后的提示
    C#中巧用Lambda进行数据的筛选查询等处理
  • 原文地址:https://www.cnblogs.com/chenjianhong/p/4144529.html
Copyright © 2011-2022 走看看