ftplib模块--编写ftp客户端程序

 ftplib模块--编写ftp客户端程序

 Python的标准库ftplib模块提供了封装性极好的对FTP服务器的操作,该模块定义FTP类和一些相关的项目。FTP类实现了FTP协议的客户端。我们可以用该模块编写python程序,做一些FTP作业。

以下是该模块内一些函数:

class ftplib.FTP(host='', user='', passwd='', acct=''[, timeout])

该函数返回一个FTP类的实例。当host给出的时候,会自动调用connect(host)方法。如果user也给出,那么除了调用connect(host)方法,还会调用login(user,passwd,acct)方法(此时passwd和acct没有给出的时候,会默认为空),timeout是一个可选参数,该参数指定等待连接ftp服务器的秒数。

FTP提供了两类的函数,一类是针对操作文本文件的函数,该类函数形式通常以lines结尾;另一类是针对操作二进制文件的函数,该类函数形式以binary结尾。

FTP.set_debuglevel(level) :

设置该类实例的调试级别,用来控制调试信息输出的数量。缺省值为0,没有任何信息输出;值为1的时候会产生中等级别的输出,一般情况下是每个请求一行输出;当值为2的时候,会产生最多信息的输出,记录有关控制连接的输入与输出信息。

FTP.connect(host='', port=0[, timeout])

连接指定的目标,端口默认情况下为21。该函数每个实例只能调用一次,如果在FTP类实例化的时候指定了host参数,不应该调用该函数,因为在该类实例化的时候自动调用了该函数。在该函数调用之后才能调用其它函数。timeout参数的意义同函数ftplib.FTP(host='', user='', passwd='', acct=''[, timeout])

FTP.getwelcome()

在开始连接ftp服务器后,服务器会返回给我们一个welcome信息。

FTP.login(user='anonymous', passwd='', acct='')

指定用户登录ftp服务器。passwd和acct是可选的参数,默认为空。如果没有指定用户名,默认为anonymous。如果用户名为anonymous,密码默认为anonymous@,该函数对于每个实例也只能调用一次。一旦建立连接,该实例就不能再调用该函数了。

FTP.abort()

终止文件传输的过程。该函数不总是起作用,但是值得一试。

FTP.sendcmd(cmd)

发送简单的命令到服务器,返回响应信息。

FTP.voidcmd(cmd)

发送简单的命令给服务器并能处理响应。如果成功什么都不返回,否则产生error_reply异常。

FTP.retrbinary(cmd, callback, blocksize=8192, rest=None)

以二进制模式获取文件,cmd是一个RETR命令,例如:'RETR filename'。当接收到每块数据的时候,会调用callback函数。block指定缓冲区的大小,rest和transfercmd()函数意义是相同的。

FTP.retrlines(cmd, callback=None)

以文本模式获取文件和文件夹列表,cmd是 RETR 命令或者是 LIST ,NLST ,MLSD(通常是字符创 'LIST')。LIST 获取文件列表和有关这些文件的信息,NLST获取文件名的列表。在一些服务器上,MLSD获取机器可读的文件列表和有关这些文件的信息。每行输出作为ccallback的参数调用该函数,默认将每行打印到标准输出上。

FTP.set_pasv(boolean)

如果为真,设为passive模式。默认为该模式。

FTP.storbinary(cmd, file, blocksize=8192, callback=None)

以二进制模式上传文件,,cmd一般为STOR命令,例如:"STOR filename"。file是一个打开的文件对象,将打开文件的内容上传到服务器上并存储文件名为filename的文件。callback是一个可选参数,在每块数据发送后调用该函数。

FTP.storlines(cmd, file, callback=None)

以文本模式上传文件,参数的意义同上,区别是该file对象利用readline()函数将文件内容传到服务器上,而上面是利用file的read()函数。

FTP.transfercmd(cmd, rest=None)

初始化一个数据传输的一个连接。如果传输是active的,cmd参数指定EPRT或者PORT命令,接受连接。如果ftp服务器是passive的,cmd为EPSV或者PASV命令,连接服务器,启动传输命令,返回连接的socket。

FTP.ntransfercmd(cmd, rest=None)

同上,区别是该函数返回一个数据连接和数据大小的元组。如果不能计算大小,会返回None。

FTP.nlst(argument[, ...])

返回NLST命令的文件名列表。参数的缺省参数文件夹名,默认为服务器当前文件夹。

FTP.dir(argument[, ...])

同上。

FTP.rename(fromname, toname)

重命名文件

FTP.delete(filename)

删除文件

FTP.cwd(pathname)

设置服务器当前文件夹路径

FTP.mkd(pathname)

创建文件夹

FTP.rmd(dirname)

删除文件夹

FTP.size(filename)

获取文件大小

FTP.quit()

发送quit命令给服务器,结束连接。这是比较好的结束连接的方式,但是可能会产生异常。

FTP.close()

结束连接。如果连接已经终止,不能调用该函数。调用该函数的实例也不能再继续使用。

FTP Library Routines Release 4.0 Thomas Pfau (tfpfau@gmail.com) June 7, 2013 This package implements a callable interface to FTP. The FTP protocol is specified in RFC 959. The library has been tested on linux, OpenVMS and Windows NT. It should also work without major modification on other POSIX systems. All programs using the library should include ftplib.h. FTP开源库。 Miscellaneous Functions FtpInit() - Initialize the library FtpSite() - Send a 'SITE' command FtpLastResponse() - Retrieve last server response FtpSysType() - Determine remote system type FtpSize() - Determine size of remote file FtpSizeLong() - Determine size of remote file FtpModDate() - Determine modification time of file FtpSetCallback() - Establish a callback function FtpClearCallback() - Remove a callback function Server Connection FtpConnect() - Connect to a remote server FtpLogin() - Login to remote machine FtpQuit() - Disconnect from remote server FtpOptions() - Set Connection Options Directory Functions FtpChdir() - Change working directory FtpMkdir() - Create a directory FtpRmdir() - Remove a directory FtpDir() - List a remote directory FtpNlst() - List a remote directory FtpCDUp() - Change to parent directory FtpPwd() - Determine current working directory File to File Transfer FtpGet() - Retreive a remote file FtpPut() - Send a local file to remote FtpDelete() - Delete a remote file FtpRename() - Rename a remote file File to Program Transfer These routines allow programs access to the data streams connected to remote files and directories. FtpAccess() - Open a remote file or directory FtpRead() - Read from remote file or directory FtpWrite() - Write to remote file FtpClose() - Close data connection Utilities qftp - Command line ftp utility
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值