如何在 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

更新于: 2024年11月13日

310 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告