📜  如何使用Python在 FTP 服务器中下载和上传文件?(1)

📅  最后修改于: 2023-12-03 15:24:00.680000             🧑  作者: Mango

如何使用Python在FTP服务器中下载和上传文件?

FTP(文件传输协议)是一种用于在网络之间传输文件的标准协议。Python的ftplib模块提供了FTP客户端的实现,使得我们可以通过Python语言在FTP服务器中上传、下载和管理文件。

在本文中,我们将学习如何使用Python中的ftplib模块在FTP服务器中上传和下载文件。

连接FTP服务器

在使用ftplib模块与FTP服务器进行交互之前,我们需要先连接到FTP服务器。我们可以使用ftplib.FTP类的构造函数,指定FTP服务器地址和端口,以及连接时使用的用户名和密码:

import ftplib

# FTP连接参数
host = 'ftp.example.com'
port = 21
username = 'user'
password = 'password'

# 连接FTP服务器
ftp = ftplib.FTP()
ftp.connect(host, port)
ftp.login(user=username, passwd=password)

在上述代码中,我们创建了一个ftplib.FTP对象并使用connect()方法连接到FTP服务器。接着,我们对FTP服务器进行了登录操作,使用了用户名和密码参数传递给login()方法。

下载文件

下载文件是从FTP服务器获取文件并将其保存到计算机本地的过程。我们可以使用ftplib.FTP类的retrbinary()方法来下载二进制文件。

retrbinary()方法接受两个参数,文件的FTP路径和一个回调函数。回调函数用于向FTP服务器传递数据块,每次执行此函数时,它将传递一个“块”二进制数据。

以下代码演示了如何从FTP服务器下载文件:

import ftplib

# FTP连接参数
host = 'ftp.example.com'
port = 21
username = 'user'
password = 'password'

# 文件下载参数
remote_file_path = '/data/README.txt'
local_file_path = '/Users/username/Documents/README.txt'

# 连接FTP服务器
ftp = ftplib.FTP()
ftp.connect(host, port)
ftp.login(user=username, passwd=password)

# 下载文件
with open(local_file_path, 'wb') as f:
    ftp.retrbinary('RETR ' + remote_file_path, f.write)

# 关闭FTP连接
ftp.quit()

在上述代码中,我们创建一个远程文件路径和本地文件路径,并在通过FTP连接后使用retrbinary()方法下载文件。我们还使用了Python的with语句,确保下载后及时关闭文件。

上传文件

上传文件是将文件从计算机本地传输到FTP服务器的过程。我们可以使用ftplib.FTP类的storbinary()方法上传二进制文件。

storbinary()方法接受两个参数,文件的FTP路径和一个打开文件的对象。通过此函数,我们可以将计算机本地的文件读入该对象并将其上传到FTP服务器。

以下代码演示了如何将文件上传到FTP服务器:

import ftplib

# FTP连接参数
host = 'ftp.example.com'
port = 21
username = 'user'
password = 'password'

# 文件上传参数
local_file_path = '/Users/username/Documents/README.txt'
remote_file_path = '/data/README.txt'

# 连接FTP服务器
ftp = ftplib.FTP()
ftp.connect(host, port)
ftp.login(user=username, passwd=password)

# 上传文件
with open(local_file_path, 'rb') as f:
    ftp.storbinary('STOR ' + remote_file_path, f)

# 关闭FTP连接
ftp.quit()

在上述代码中,我们创建一个本地文件路径和远程文件路径,并在通过FTP连接后使用storbinary()方法将文件上传到服务器。我们还使用了Python的with语句以确保上传后及时关闭文件。

总结

以上就是本文介绍如何使用Python在FTP服务器中上传和下载文件的内容。借助ftplib模块,我们可以轻松地与FTP服务器进行交互,并管理服务器上的文件。