本文将从客户端的角度向您展示如何在 Python 中使用文件传输协议(FTP)。 我们使用ftplib,这是一个实现 FTP 协议的库。 使用 FTP,我们可以通过函数调用创建和访问远程文件。
目录列表
我们可以使用这个小片段列出根目录:
import ftplibftp = ftplib.FTP("ftp.nluug.nl")ftp.login("anonymous", "ftplib-example-1")data = []ftp.dir(data.append)ftp.quit()for line in data:print "-", line
这将输出目录内容。 以简单的控制台样式输出。 如果要显示特定目录,则必须在连接ftp.cwd('/')函数后更改目录,其中参数是您要更改的目录。
import ftplibftp = ftplib.FTP("ftp.nluug.nl")ftp.login("anonymous", "ftplib-example-1")data = []ftp.cwd('/pub/') # change directory to /pub/ftp.dir(data.append)ftp.quit()for line in data:print "-", line
下载文件
要下载文件,我们使用retrbinary()函数。 下面的例子:
import ftplibimport sysdef getFile(ftp, filename):try:ftp.retrbinary("RETR " + filename ,open(filename, 'wb').write)except:print "Error"ftp = ftplib.FTP("ftp.nluug.nl")ftp.login("anonymous", "ftplib-example-1")ftp.cwd('/pub/') # change directory to /pub/getFile(ftp,'README.nluug')ftp.quit()
上传文件
我们可以使用storlines()命令上传文件。 这将在主目录中上传文件README.nluug。 如果要在另一个目录中上传,请与cwd()函数结合使用。
import ftplibimport osdef upload(ftp, file):ext = os.path.splitext(file)[1]if ext in (".txt", ".htm", ".html"):ftp.storlines("STOR " + file, open(file))else:ftp.storbinary("STOR " + file, open(file, "rb"), 1024)ftp = ftplib.FTP("127.0.0.1")ftp.login("username", "password")upload(ftp, "README.nluug")
其他函数
有关其他函数,请参考官方库文档。
