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()