美文网首页python学习资料
python 实现ftp客户端

python 实现ftp客户端

作者: _String_ | 来源:发表于2017-05-18 14:50 被阅读0次

    ftp客户端交互流程如下:

    1. 客户端连接远程服务器
    2. 客户端输入用户名、密码
    3. 客户端做各种文件传输和信息查询操作
    4. 客户端登出远程futp服务器
      完成以上步骤就实现了一个ftp客户端,在客户端实现时需要考虑服务器是工作做主动模式还是被动模式,服务器工作在主动模式时服务器21端口用于传输指令,一般数据端口使用20。
      使用python实现ftp客户端需要倒入ftplib模块,并实例化一个ftplib.FTP类对象,所有的FTP操作均使用这个对象完成。
      主要使用代码如下:
      from ftplib import FTP f = FTP(domain.name) f.login('user','password') .. f.quit()
      在客户端开发时主要使用ftplib.FTP类方法,该类主要包含方法如下:
      login()登录到ftp服务器,参数可选
      pwd()得到当前目录
      cwd()把当前目录设在成path
      dir()列目录一个可选参数,他会被传给
      nlst()与dir类似返回文件名列表而不是现实这些文件名
      retrlinces()个顶FTP命令如RETR filename用于下载文本文件,可选回调函数cb用处理文件每一行
      retrbinary()与retrlines()类似
      storbinary(cmd,f[,bs=8192])
      storlines(cmd,f)上传文件,f为一个文件对象
      rename(old,new)修改文件名
      delete(path)删除指定目录
      mkd(directory)创建目录
      md(directory)删除远程目录
      quit()关闭连接
      具体实现代码如下:
      `
      示例代码:#!/usr/bin/env python
      import ftplib
      import os
      import socket

    HOST='004.3vftp.com'
    DIRN='./'
    FILE ='xcount.py'

    def main():
    try:
    f = ftplib.FTP('004.3vftp.com')
    except (socket.error,socket.gaierror), e:
    print 'ERROR: cannot reach "%s"' % HOST
    return
    print """connected to host "%s"""" % HOST
    pwd = raw_input('please inpu password:')
    user = raw_input('please input user:')
    try:
    f.login(user,pwd)
    except ftplib.error_perm:
    print 'error: cannot login anonymously'
    return
    print '-------logged in as %s secuss----' % user
    try:
    f.retrbinary('RETR %s' % FILE, open(FILE,'wb').write)
    except ftplib.error_perm:
    print 'ERROR: cannot read file "%s" % FILE'
    os.unlink(FILE)
    else:
    print '
    Downloaded "%s" to cwd' % FILE
    f.quit()
    return

    if name == 'main':
    main()

    `

    相关文章

      网友评论

        本文标题:python 实现ftp客户端

        本文链接:https://www.haomeiwen.com/subject/catsxxtx.html