python 实现ftp客户端

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客户端)