简单介绍 Python 与FTP的交互

转自www.ringkee.com的一篇文章 

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) 

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

有关FTP的其它功能可查询python的官方网站,网址是http://docs.python.org/lib/module-ftplib.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值