基于ftplib实现py控制ftp服务器(含效果源码)
程序员文章站
2022-07-14 12:50:02
...
本博文源于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()