实训之压缩软件
Posted 鹿港小镇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实训之压缩软件相关的知识,希望对你有一定的参考价值。
# 压缩文件
import tkinter
import tkinter.filedialog
import tkinter.messagebox
import zipfile
import os
class ZipDemo:
def __init__(self):
self.root = tkinter.Tk()
self.root.minsize(300, 400)
self.root.title(\'chy压缩软件\')
self.showLabel()
self.root.mainloop()
self.files = ()
self.root.resizable(width = False, height = False)
# 添加文件
def selectFiles(self):
# 全局变量
global files
self.files = tkinter.filedialog.askopenfilenames(title=\'请选择要压缩的文件\')
print(self.files)
# 临时路径
self.tmpfiles = []
# 遍历元祖 进行路径的截取
for i in self.files:
# 判断路径字符个数是否超过长度
if len(i) >= 40:
i = i[0:15] + \'...\' + i[-15:]
# 将处理之后的数据存入临时列表
self.tmpfiles.append(i)
# 将所有文件路径组成字符串 写入label
filestr = \'\\n\'.join(self.tmpfiles)
print(filestr)
self.filenames.set(filestr)
# 压缩文件
def zipFiles(self):
# 全局声明
global files
# 获取压缩文件路径
self.filename = tkinter.filedialog.asksaveasfilename(title=\'请选择压缩路径\',filetypes=((\'zip 文件\', \'*.zip\'), (\'doc 文件\', \'*.doc\')))
# 新建压缩文件
self.zp = zipfile.ZipFile(self.filename,\'a\')
# 遍历文件信息
for onefile in self.files:
self.zp.write(onefile, os.path.basename(onefile))
# 关闭压缩文件
self.zp.close()
# 提示用户压缩路径
tkinter.messagebox.showinfo(title = \'操作结果\',message=\'提示压缩成功:\' + self.filename )
# 解压
def jyFiles(self):
# 选择压缩文件
jypath = tkinter.filedialog.askopenfilename(title=\'选择解压文件\', filetypes=[(\'zip 文件\', \'*.zip\')])
# 解压路径
zippath = tkinter.filedialog.askdirectory(title=\'选择解压路径\')
print(zippath, type(zippath))
zf = zipfile.ZipFile(jypath, \'r\')
zf.extractall(zippath)
# 弹出提示框
tkinter.messagebox.showinfo(\'提示\', \'解压成功,解压路径:\' + zippath)
# 界面布局
def showLabel(self):
# 添加文件按钮
btn1 = tkinter.Button(self.root, text=\'添加文件\', fg=\'blue\', command=self.selectFiles)
btn1.place(x=20, y=20, width=80, height=40)
# 添加压缩按钮
btn2 = tkinter.Button(self.root, text=\'压缩文件\', fg=\'red\', command=self.zipFiles)
btn2.place(x=110, y=20, width=80, height=40)
# 添加解压按钮
btn3 = tkinter.Button(self.root, text=\'解压文件\', fg=\'black\', command=self.jyFiles)
btn3.place(x=205, y=20, width=80, height=40)
# 声明label使用的变量
self.filenames = tkinter.StringVar()
self.filenames.set(\'当前没有文件\')
# 显示信息的组建
label = tkinter.Label(self.root, bg=\'white\', textvariable=self.filenames, justify=\'left\', anchor=\'w\')
label.place(x=15, y=80, width=270, height=300)
zip = ZipDemo()
以上是关于实训之压缩软件的主要内容,如果未能解决你的问题,请参考以下文章