Py学习  »  Python

Python FTP简介

Python程序员 • 5 年前 • 334 次点击  

引言

在本教程中,我们将探讨如何使用FTP和Python通过TCP/IP连接从服务器发送和接收文件。

为了更简单、更抽象,我们将使用Python的ftplib库,它提供了一系列功能,使使用ftp更容易。我们将看到从服务器上传和下载文件的实现,以及“ftplib”允许我们做的一些很酷的事情。

FTP是什么?

FTP即文件传输协议;它基于客户机-服务器模型体系结构,应用广泛。它有两个通道:一个命令通道和一个数据通道。命令通道用于控制通信,数据通道用于文件的实际传输。使用FTP可以做很多事情,比如移动、下载、复制文件等。我们将在后面的一节中讨论这一点,以及如何使用Python来实现这一点的详细信息。

在Python中使用FTP

接下来,您会很高兴地知道ftplib是一个内置的库,它已经和Python一起安装了,您所需要做的就是将它导入到脚本中,然后就可以使用它的函数了。要导入它,请使用以下命令:

之后,我们需要启动一个到FTP服务器的连接,我们想打开一个与之通信的链接。为此,请创建一个ftp实例:

上述方法使用默认端口(即端口21)与服务器建立连接。下一步是提供登录凭据,即用户名和密码,以访问服务器上的文件。您可以使用以下方法:

用户名和密码的默认值分别为“anonymous”和“anonymous@”。如果连接成功,您将收到一条类似“230登录成功”的消息。

现在我们已经建立了到服务器的连接,我们导航到我们希望在其中执行操作的目录,即获取或写入文件。为此,我们使用以下命令更改“当前工作目录”:

现在我们来讨论一些基本的例子,如何从目录中获取文件或将文件写入目录。在每行代码旁边的注释中提供代码的解释:

在上面的retrbinary调用中,1024表示文件将以1024字节的块下载,直到整个文件被传输为止。

下载或上载文件后,您还需要做一件事-关闭该文件,并关闭已打开的FTP连接。对于上面的示例,您可以使用以下两行代码来执行此操作:

现在让我们尝试将文件上载到服务器。除了下面的命令之外,您还必须重写上面用来打开FTP连接的命令。将文件加载到服务器。

在上述示例中,“rb”和“wb”分别表示“读二进制”和“写二进制”。

FTP其他的功能

既然我们已经讨论了主要特性的实现,现在让我们看看ftplib提供给我们的一些附加功能。

列出文件和目录

要以列表格式查看当前工作目录中的文件和文件夹,请运行retrlines命令:

创建新目录

为了以某种方式组织文件,您可能需要在服务器上创建一个新目录,您可以使用一行代码:

路径将是您希望新目录位于的位置。

从服务器中删除文件

删除服务器上的文件相当简单,只需将文件名作为删除函数的参数。操作的成功或失败将由响应消息传递。

检查当前路径

要检查当前路径,只需运行以下代码:

此命令将返回到当前工作目录的绝对路径。

警告

重要的是,虽然FTP本身很安全,但通常不用于传输敏感信息;如果您正在传输类似的内容,那么您应该选择更安全的选项,如SFTP(安全FTP)或SSH(安全shell)。这些是处理敏感数据传输最常用的协议。

结论

在本文中,我们讨论了什么是FTP,以及在不同示例的帮助下如何工作。我们还了解了如何使用Python的“ftplib”模块使用FTP与远程服务器通信,并了解了该模块提供的其他一些功能。最后,我们还讨论了一些更安全的FTP替代方案,如用于传输敏感信息的SFTP和SSH。

有关在Python中使用FTP的更多信息,请参见官方ftplib文档或RFC959。


英文原文:https://stackabuse.com/introduction-to-python-ftp/
译者:张新英


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/29975
 
334 次点击