當前位置:
首頁 > 知識 > Python FTP簡介

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/

譯者:張新英

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python部落 的精彩文章:

時至今天,每行80個字元也是一個值得堅持的標準
Python開發人員最喜歡的工具

TAG:Python部落 |