基于ftplib实现py控制ftp服务器(含效果源码)

本博文源于python基础,为了便于友好,我们还是需要下载一个30天免费玩的服务器。博主特意准备好这个博文供大家玩耍
wingftpserver完整配置免费ftp站点(指南)
如果大家本身对python控制ftp不熟,可以查看这篇博文的具体的函数指南,本篇博文仅放实验
python控制ftp理论篇

实验效果

python控制ftp实验效果
在这里插入图片描述

实验原理

利用ftp协议的函数方法制作而成,大多数都是理论篇的方法

实验代码

from ftplib import FTP
bufsize = 1024
def Get(filename):
    command = 'RETR ' + filename
    ftp.retrbinary(command, open(filename,'wb').write, bufsize)
    print('下载成功')
def Put(filename):
    command = 'STOR' + filename
    filehandler = open(filename,'rb')
    ftp.storbinary(command,filehandler,bufsize)
    filehandler.close()
    print('上传成功')

def PWD():
    print(ftp.pwd())

def Size(filename):
    print(ftp.size(filename))

def Help():
    print('''
    =============================================================
                  Simple   Python    FTP
    ==============================================================
    cd                      进入文件夹
    delete                  删除文件
    dir                     获取当前文件列表
    get                     下载文件
    help                    帮助
    mkdir                   创建文件夹
    put                     上传文件
    pwd                     获取当前目录
    rename                  重命名文件
    rmdir                   删除文件夹
    size                    获取文件大小''')

server = input('请输入ftp服务器地址:')

ftp = FTP(server)

username = input('请输入用户名:')
password = input('请输入密码:')
ftp.login(username,password)
print(ftp.getwelcome())
action = {'dir':ftp.dir,'pwd':PWD,'cd':ftp.cwd, 'get':Get,
          'put':Put,'help':Help, 'rmdir':ftp.rmd,
          'mkdir':ftp.mkd,'delete':ftp.delete,
          'size':Size,'rename':ftp.delete}

while True:
    print('pyftp>',)
    cmds = input()
    cmd = str.split(cmds)
    try:
        if len(cmd) == 1:
            if str.lower(cmd[0]) == 'quit':
                break
            else:
                action[str.lower(cmd[0])]()
        elif len(cmd) == 2:
            action[str.lower(cmd[0])](cmd[1])
        elif len(cmd) == 3:
            action[str.lower(cmd[0])](cmd[1],cmd[2])
        else:
            print('输入错误')

    except:
        print('命令出错')

ftp.quit()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章