本博文源於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()