基於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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章