如何在 Python 中使用 FTP?
在 Python 中,我們可以透過匯入 **ftplib** 模組來使用 **FTP**(檔案傳輸協議),它提供了一個簡單的介面來訪問 FTP 伺服器,以便檢索檔案並在本地處理它們。**ftplib** 模組允許我們編寫執行各種自動化 FTP 任務的 Python 程式。
FTP 的目標
FTP 的目標如下:
- FTP 提供檔案共享。
- FTP 幫助我們鼓勵使用遠端計算機。
- FTP 用於可靠且高效地傳輸資料。
以下是一些我們可以使用 Python 中的 **'ftplib'** 模組執行的常見 FTP 任務:
- 連線到 FTP 伺服器
- 下載檔案
- 上傳檔案
- 列印檔案列表
連線到 FTP 伺服器
以下將連線到遠端伺服器,然後我們可以將其更改為特定目錄。
from ftplib import FTP
#domain name or server ip:
ftp = FTP('123.server.ip')
ftp.login(user='username', passwd = 'password'
在執行上述程式以連線 FTP 伺服器時,如果連線成功,則會顯示 **“登入成功。”**
'230 Login successful.'
如果連線失敗,由於使用者名稱或密碼錯誤,則會顯示 **“登入錯誤。”**
'530 Login incorrect.'
下載檔案
首先,我們必須將檔名分配給一個變數,並使用 open() 方法開啟我們的本地檔案。除了檔名外,您還需要傳遞表示所需模式的字串。在我們的場景中,我們需要下載的檔案是二進位制檔案,因此模式將為 **wb**。
接下來,我們必須從遠端伺服器檢索以二進位制格式存在的資料,然後我們將找到的內容寫入本地檔案。最後一個引數 (1024) 充當緩衝的參考。
from ftplib import FTP
def download_file():
# Establish FTP connection
ftp = FTP('ftp.example.com')
ftp.login('username', 'password')
# Define the file to be downloaded
file_name = 'example.txt'
# Open a local file in write-binary mode
with open(file_name, 'wb') as local_file:
# Download the file from the FTP server
ftp.retrbinary('RETR ' + file_name, local_file.write, 1024)
# Quit the FTP connection
ftp.quit()
print(f"{file_name} downloaded successfully!")
# Call the function
download_file()
以下是上述程式碼的輸出:
example.txt downloaded successfully!
上傳檔案
與下載檔案相同,這裡我們將檔名分配給一個變數,然後將二進位制資料儲存到檔名中,其中包含來自本地檔名的檔案資料。
def upload_file():
file_name = 'exampleFile.txt'
ftp.storbinary('STOR ' + file_name, open(file_name, 'rb'))
ftp.quit()
upload_file()
列印檔案列表
以下示例程式碼將連線到 FTP 伺服器並列印該伺服器主目錄中的檔案列表。
import ftplib
# Connect to the FTP server
ftp_connection = ftplib.FTP('ftp.server.com', 'username', '@email.address')
# Printing file list
print("File List:")
file_list = ftp_connection.dir()
print(file_list)
# Change working directory to /tmp
ftp_connection.cwd("/tmp")
以下是上述程式碼的輸出:
File List: -rw-r--r-- 1 owner group 12345 Sep 11 12:00 file1.txt -rw-r--r-- 1 owner group 67890 Sep 10 15:30 file2.zip
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP