基于ftplib的交互式ftp客户端实现
1.简介
FTP(File Transfer
Protocol)是较为常用的一种协议,用于Internet上的控制文件实现双向传输,为了方便文件的上载、下载等操作,python默认提供了ftplib模块用于ftp客户端的开发实现,本文对ftplib做了二次封装,并自定义了一个控制台支持简单的交互命令,实现服务器连接、登录、目录读取、目前切换、上载、下载,关闭连接等操作。
2.Ftplib
Ftplib是一个ftp客户端操作实现封装,实例化的类名为FTP,本文涉及的FTP类主要包括如下的函数:
方法 | 说明 |
---|---|
Connect | 连接指定IP的FTP服务器, |
login | 以指定账号和密码登录FTP服务器 |
dir | 浏览当前目录下的文件与下一级目录名称 |
storbinary | 上传文件 |
retrbinary | 下载文件 |
Quit | 与服务器断开连接 |
3.设计实现
整个代码部分主要包括CustomConsole自定义值班台类和FTPClient客户端两个类,CustomConsole为主控,FTPClient为ftp访问的操作实现。
本程序依赖的模块主要包括
import ftplib
import os,socket
import threading
程序的main函数入口书写方式如下
if __name__ == ‘_main_’:
c = CustomConsole()
c.start()
c.join()
3.1 CustomConsole类
3.1.1 设计说明
CustomConsole为线程类,持续等待用户输入命令,支持的命令包括conn、login、ls、cd、get、put、quit等命令
conn是连接ftp服务器命令,之后需要输入希望连接的ftp服务器的ip
login是登录命令,之后需要输入用户名和密码用于登录
ls是浏览当前目录下的文件与下一级目录名称的命令
cd是切换目录命令,需要输入需要切换的目录名称,目前是实现较简单,只能网下级切换,不支持父目录切换
get是下载文件命令,之后需要指定ftp服务器上的待下载文件名称
p