使用Python的ftplib库进行FTP文件下载和上传的完整指南
0x01 正文
最近脚本写上头了,遇到了常见的ftp上传下载,本着方便第一的原则准备写一个。
Python提供了ftplib库,可以轻松地使用FTP进行文件下载和上传。但是既然是脚本设计思路得本着与人方便于己方便的原则,对于其中用到的几个参数做一些设计。
代码解析和说明:
from ftplib import FTP
import argparse
在开始之前,我们导入了需要使用的ftplib库和argparse库,前者用于进行FTP操作,后者用于解析命令行参数。
def download_file_from_ftp(server, username, password, ftp_file_path, local_file_path):
# 连接到FTP服务器
ftp = FTP(server)
ftp.login(username, password)
这里定义了一个名为download_file_from_ftp的函数,它接受FTP服务器地址、用户名、密码、FTP文件路径和本地文件保存路径作为参数。在函数内部,我们使用FTP类创建一个FTP对象,并使用login方法登录到FTP服务器。
# 切换到FTP文件路径
ftp.cwd(ftp_file_path)
使用cwd方法切换到指定的FTP文件路径。
# 下载文件
with open(local_file_path, 'wb') as file:
ftp.retrbinary('RETR ' + ftp_file_path, file.write)
使用open函数创建一个本地文件对象,模式为二进制写入('wb')。然后,使用retrbinary方法从FTP服务器下载文件并将其写入本地文件。
# 关闭FTP连接
ftp.quit()
使用quit方法关闭FTP连接。
def upload_file_to_ftp(server, username, password, ftp_file_path, local_file_path):
# 连接到FTP服务器
ftp = FTP(server)
ftp.login(username, password)
这里定义了一个名为upload_file_to_ftp的函数,功能是将文件上传到FTP服务器。函数的参数与download_file_from_ftp函数相同。
# 切换到FTP文件路径
ftp.cwd(ftp_file_path)
使用cwd方法切换到指定的FTP文件路径。
# 上传文件
with open(local_file_path, 'rb') as file:
ftp.storbinary('STOR ' + ftp_file_path, file)
使用open函数创建一个本地文件对象,模式为二进制读取('rb')。然后,使用storbinary方法将本地文件上传到FTP服务器。
# 关闭FTP连接
ftp.quit()
使用quit方法关闭FTP连接。
parser = argparse.ArgumentParser(description='FTP文件下载和上传脚本')
创建一个命令行参数解析器,并设置描述信息。
parser.add_argument('--u', help='FTP服务器地址')
parser.add_argument('--n', help='FTP账号')
parser.add_argument('--p', help='FTP密码')
parser.add_argument('--f', help='FTP服务器文件路径')
parser.add_argument('--l', help='本地文件保存路径')
添加命令行参数,包括FTP服务器地址(--u)、FTP账号(--n)、FTP密码(--p)、FTP服务器文件路径(--f)和本地文件保存路径(--l)。
args = parser.parse_args()
解析命令行参数,并将结果存储在args变量中。
download_file_from_ftp(args.server, args.username, args.password, args.ftp_file_path, args.local_file_path)
调用download_file_from_ftp函数,传入命令行参数的值,实现文件下载功能。
upload_file_to_ftp(args.server, args.username, args.password, args.ftp_file_path, args.local_file_path)
调用upload_file_to_ftp函数,传入命令行参数的值,实现文件上传功能。
完整代码:
总结:
没事儿写脚本写出来的东西由于时间问题也没有怎么调整,欢迎指正不足,大佬轻喷!
0x02 好物推荐
小白学Python编程的入门经典教程,结合ChatGPT应用,让你学得会、用得上、做得出!
0x03 看到这里了,师傅不加个群嘛
欢迎师傅们加入我的 钟毓安全的小屋(群内添加本人好友请备注),一起学习进步~后面不定期发布更多资源,更多惊喜等着大家。
注:
1、内容来源书籍总结,及个人总结,和互联网数据若干,不存在盗用等情况;
2、壁纸来源于https://wallhaven.cc;
3、特声明,壁纸不存在低俗 引流等行为,本文重点在于共享资源;
原文始发于微信公众号(钟毓安全):用python写一款FTP自动化的脚本
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论