操作系统  办公  实用知识  设计  开发  WEB开发  移动开发  数据库  软件工程  网管  安全  管理  信息化  答疑  渠道 

用python的ftplib模块编写ftp客户端程序

2008-1-21 网友评论 0 条 点击进入论坛

  ftplib模块定义了FTP类和一些方法,用以进行客户端的ftp编程。我们可用python编写一个自已的ftp客户端程序,用于下载文件或镜像站点。如果想了解ftp协议的详细内容,请参考RFC959。

  该模块是python的通用模块,所以默认应该已安装。ftplib模块使用很简单,暂时只有一个FTP类和十几个函数。下面用一个交互方式演示一下ftplib的主要功能。

  >>>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 www.python.org

  >>>ftp.quit()

  '221 Goodbye.'

  下面是一个下载文件的示例

  #!/usr/bin/env python

  #author:Jims of 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 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)

已有 0 位对此文章感兴趣的网友发布了看法    
我来评两句 登录邮箱: 密码:
  匿名发表
今日推荐
技术文库(共有 46294 篇文章)
操作系统
办公软件
实用知识
网络管理
软件开发
WEB开发
软件工程
数据库
设计在线
信息安全
行业信息化
管理信息化
移动开发
重点推荐
电子杂志订阅
点击电子杂志名称查看样刊
输入E-mail地址即可订阅
E-mail