Python中的FTP协议客户端

ftplib模块中所有重要的FTP类都实现FTP协议的客户端。

要与FTP服务器建立连接,请获取FTP对象。

con = FTP(主机名)

FTP类支持以下方法-

connect()

连接到给定的主机和端口。默认端口号是21,由FTP协议规范指定。

Getwelcome()

返回服务器发送的欢迎消息以回复初始连接。

登录名(用户='匿名',passwd ='',acct ='')

以给定用户身份登录。passwd和acct参数是可选的,默认为空字符串。如果未指定用户,则默认为“匿名”。如果用户为“匿名”,则默认密码为“匿名@”。

abort()

中止正在进行的文件传输。

retrbinary(cmd,回调,blocksize = 8192,rest =无)

以二进制传输模式检索文件。cmd应该是适当的RETR命令:“ RETR文件名”。

Storbinary()

以二进制传输模式存储文件。cmd应该是适当的STOR命令:“ STOR文件名”。fp是一个文件对象(以二进制模式打开),使用它的read()方法读取直到EOF为止

dir()

生成目录列表,如LIST命令所返回,将其打印到标准输出中。

删除(文件名)

从服务器中删除名为filename的文件。

cwd(路径名)

在服务器上设置当前目录。

mkd(路径名)

在服务器上创建一个新目录。

FTP.pwd()

返回服务器上当前目录的路径名。

rmd(目录名)

在服务器上删除名为dirname的目录。

大小(文件名)

请求服务器上名为filename的文件的大小。成功后,将以整数形式返回文件的大小,否则返回None。请注意,SIZE命令不是标准化的,但是许多常见的服务器实现都支持该命令。

放弃()

将QUIT命令发送到服务器并关闭连接。

下面的示例与服务器建立匿名连接,将文件下载到本地文件夹,然后上传本地文件。

from ftplib import FTP
import os
def downloadFile():
   filename = 'README.MIRRORS'
   localfile = open(filename, 'wb')
   ftp.retrbinary('RETR ' + filename, localfile.write, 1024)
   ftp.quit()
   localfile.close()
def uploadFile():
   filename = '/home/malhar/file.txt'
   ftp.storbinary('STOR '+filename, open(filename, 'rb'))
   ftp.quit()
with FTP("ftp1.at.proftpd.org") as ftp:
   ftp.login()
   ftp.getwelcome()
   ftp.dir()
   downloadFile()
   uploadFile()