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

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值