Python中使用ftplib实现FTP文件上传和下载功能
发布时间:2023-12-19 00:05:08
在Python中,我们可以使用ftplib模块来实现FTP文件上传和下载的功能。ftplib模块提供了一系列的方法,用于连接FTP服务器、登录、上传和下载文件等操作。
下面是一个使用ftplib实现FTP文件上传和下载功能的示例代码:
from ftplib import FTP
def ftp_upload(hostname, username, password, filename, target_dir):
try:
# 连接FTP服务器
ftp = FTP(hostname)
ftp.login(username, password)
# 切换到目标目录
ftp.cwd(target_dir)
# 打开本地文件
with open(filename, 'rb') as file:
# 上传文件
ftp.storbinary('STOR ' + filename, file)
print('文件上传成功')
except Exception as e:
print('文件上传失败:', str(e))
finally:
# 关闭连接
ftp.quit()
def ftp_download(hostname, username, password, filename, target_dir):
try:
# 连接FTP服务器
ftp = FTP(hostname)
ftp.login(username, password)
# 切换到目标目录
ftp.cwd(target_dir)
# 打开本地文件
with open(filename, 'wb') as file:
# 下载文件
ftp.retrbinary('RETR ' + filename, file.write)
print('文件下载成功')
except Exception as e:
print('文件下载失败:', str(e))
finally:
# 关闭连接
ftp.quit()
# 使用示例
if __name__ == '__main__':
hostname = 'ftp.example.com' # FTP服务器地址
username = 'username' # FTP用户名
password = 'password' # FTP密码
filename = 'example.txt' # 本地文件名
target_dir = '/uploads' # 目标目录
# 上传文件
ftp_upload(hostname, username, password, filename, target_dir)
# 下载文件
ftp_download(hostname, username, password, filename, target_dir)
在上面的示例代码中,我们定义了两个函数ftp_upload()和ftp_download()来分别实现文件上传和文件下载的功能。这两个函数接收FTP服务器的地址、用户名、密码、本地文件名以及目标目录等参数。
在函数内部,我们首先通过FTP()方法连接到FTP服务器,并使用login()方法登录FTP服务器。然后,使用cwd()方法切换到目标目录。
在文件上传函数中,我们使用storbinary()方法来上传文件。它接收一个命令字符串和一个文件对象作为参数,用于将文件写入服务器端。
在文件下载函数中,我们使用retrbinary()方法来下载文件。它接收一个命令字符串和一个回调函数作为参数,用于将服务器端的文件写入本地文件。
最后,在使用示例中,我们传入FTP服务器的地址、用户名、密码、本地文件名以及目标目录等参数,调用ftp_upload()函数来上传文件,然后调用ftp_download()函数来下载文件。
这就是使用ftplib实现FTP文件上传和下载功能的方法和示例代码。通过ftplib模块,我们可以很方便地实现FTP文件的上传和下载操作。
