Python FTP簡介


引言

在本教程中,我們將探討如何使用FTP和Python通過TCP/IP連接從服務器發送和接收文件。

為了更簡單、更抽象,我們將使用Python的ftplib庫,它提供了一系列功能,使使用ftp更容易。我們將看到從服務器上傳和下載文件的實現,以及“ftplib”允許我們做的一些很酷的事情。

FTP是什麼?

FTP即文件傳輸協議;它基於客戶機-服務器模型體系結構,應用廣泛。它有兩個通道:一個命令通道和一個數據通道。命令通道用於控制通信,數據通道用於文件的實際傳輸。使用FTP可以做很多事情,比如移動、下載、複製文件等。我們將在後面的一節中討論這一點,以及如何使用Python來實現這一點的詳細信息。

在Python中使用FTP

接下來,您會很高興地知道ftplib是一個內置的庫,它已經和Python一起安裝了,您所需要做的就是將它導入到腳本中,然後就可以使用它的函數了。要導入它,請使用以下命令:

Python FTP簡介

之後,我們需要啟動一個到FTP服務器的連接,我們想打開一個與之通信的鏈接。為此,請創建一個ftp實例:

Python FTP簡介

上述方法使用默認端口(即端口21)與服務器建立連接。下一步是提供登錄憑據,即用戶名和密碼,以訪問服務器上的文件。您可以使用以下方法:

Python FTP簡介

用戶名和密碼的默認值分別為“anonymous”和“anonymous@”。如果連接成功,您將收到一條類似“230登錄成功”的消息。

現在我們已經建立了到服務器的連接,我們導航到我們希望在其中執行操作的目錄,即獲取或寫入文件。為此,我們使用以下命令更改“當前工作目錄”:

Python FTP簡介

現在我們來討論一些基本的例子,如何從目錄中獲取文件或將文件寫入目錄。在每行代碼旁邊的註釋中提供代碼的解釋:

Python FTP簡介

在上面的retrbinary調用中,1024表示文件將以1024字節的塊下載,直到整個文件被傳輸為止。

下載或上載文件後,您還需要做一件事-關閉該文件,並關閉已打開的FTP連接。對於上面的示例,您可以使用以下兩行代碼來執行此操作:

Python FTP簡介

現在讓我們嘗試將文件上載到服務器。除了下面的命令之外,您還必須重寫上面用來打開FTP連接的命令。將文件加載到服務器。

Python FTP簡介

在上述示例中,“rb”和“wb”分別表示“讀二進制”和“寫二進制”。

FTP其他的功能

既然我們已經討論了主要特性的實現,現在讓我們看看ftplib提供給我們的一些附加功能。

列出文件和目錄

要以列表格式查看當前工作目錄中的文件和文件夾,請運行retrlines命令:

Python FTP簡介

創建新目錄

為了以某種方式組織文件,您可能需要在服務器上創建一個新目錄,您可以使用一行代碼:

Python FTP簡介

路徑將是您希望新目錄位於的位置。

從服務器中刪除文件

刪除服務器上的文件相當簡單,只需將文件名作為刪除函數的參數。操作的成功或失敗將由響應消息傳遞。

Python FTP簡介

檢查當前路徑

要檢查當前路徑,只需運行以下代碼:

Python FTP簡介

此命令將返回到當前工作目錄的絕對路徑。

警告

重要的是,雖然FTP本身很安全,但通常不用於傳輸敏感信息;如果您正在傳輸類似的內容,那麼您應該選擇更安全的選項,如SFTP(安全FTP)或SSH(安全shell)。這些是處理敏感數據傳輸最常用的協議。

結論

在本文中,我們討論了什麼是FTP,以及在不同示例的幫助下如何工作。我們還了解了如何使用Python的“ftplib”模塊使用FTP與遠程服務器通信,並瞭解了該模塊提供的其他一些功能。最後,我們還討論了一些更安全的FTP替代方案,如用於傳輸敏感信息的SFTP和SSH。

有關在Python中使用FTP的更多信息,請參見官方ftplib文檔或RFC959。

英文原文:https://stackabuse.com/introduction-to-python-ftp/



分享到:


相關文章: