# Python 中的 FTP 客户端 > 原文: [https://pythonspot.com/ftp-client-in-python/](https://pythonspot.com/ftp-client-in-python/) 本文将从客户端的角度向您展示如何在 Python 中使用文件传输协议(FTP)。 我们使用`ftplib`,这是一个实现 FTP 协议的库。 使用 FTP,我们可以通过函数调用创建和访问远程文件。 ## 目录列表 我们可以使用这个小片段列出根目录: ```py import ftplib ftp = 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('/')`函数后更改目录,其中参数是您要更改的目录。 ```py import ftplib ftp = 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()`函数。 下面的例子: ```py import ftplib import sys def 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()`函数结合使用。 ```py import ftplib import os def 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") ``` ## 其他函数 有关其他函数,请参考[官方库文档](https://docs.python.org/3/library/ftplib.html#)。