Python(15)python使用tkinter实现一个简单的压缩/解压程序
2017-12-29 11:08
1161 查看
class Zipper: #Zipper #引入相关模块 import tkinter as tk #tkinter模块 import tkinter.filedialog as fd #文件选取模块 import tkinter.messagebox as mbox #弹窗消息模块 import os #os模块 import zipfile #压缩模块 #Zipper类构造函数 def __init__(self): #创建一个窗口 self.window = self.tk.Tk() #设置窗口title self.window.title('MY Zipper v1.0') #设置窗口宽高 self.window.maxsize(500, 430) self.window.minsize(500, 430) #设置菜单 self.set_menu() #设置界面按钮 self.set_show() #显示选中文件的label self.label_show = self.tk.Label(self.window, text='暂时没有文件信息', bg='white', anchor='nw', justify='left') self.label_show.place(x=20, y=70, width=463, height=310) #压缩文件路径list self.zipFileName = [] #window放入主消息队列 self.window.mainloop() #设置菜单 def set_menu(self): #菜单设置 #创建总菜单 menubar = self.tk.Menu(self.window) #创建一个下拉菜单,并且加入文件菜单 filemenu = self.tk.Menu(menubar, tearoff=0) #创建下来菜单的选项 filemenu.add_command(label="退出Zipper", command=self.window.quit) def show_author(): self.mbox.showinfo(message='Wiz333@XDL 2017') filemenu.add_command(label="作者", command=show_author) #将文件菜单作为下拉菜单添加到总菜单中,并且将命名为操作 menubar.add_cascade(label="操作", menu=filemenu) #显示总菜单 self.window.config(menu=menubar) #设置界面按钮,显示框等布局 def set_show(self): #摆放按钮区域 #添加文件BTN btn_add = self.tk.Button(self.window, text='添加文件', command=self.add_file) btn_add.place(x=120, y=20) #压缩文件BTN btn_zip = self.tk.Button(self.window, text='压缩文件', command=self.zip_file) btn_zip.place(x=210, y=20) #解压文件BTN btn_unzip = self.tk.Button(self.window, text='解压文件', command=self.unzip_file) btn_unzip.place(x=300, y=20) #调用函数区域 #重置label的内容 def reset_show(self): #清空label显示 self.label_show['text'] = '暂时没有文件信息' #添加文件函数 def add_file(self): #弹出文件选择框 files = self.fd.askopenfilenames(title='选择需要压缩的文件') #将文件选择框返回元组存入list self.zipFileName += list(files) #将列表拼接成回行的字符串 str_show = '\n'.join(self.zipFileName) #label中显示路径字符串 self.label_show['text'] = str_show #压缩文件函数 def zip_file(self): #获取解压到的目录 zip_path = self.fd.askdirectory(title='请选择压缩到哪里') zip_path += '/zip_test.zip' #异常捕获 try: #打开或创建压缩文件对象 file = self.zipfile.ZipFile(zip_path, 'w', self.zipfile.ZIP_DEFLATED) # zipfile.ZIP_DEFLATED 打开对文件进行压缩选项 #添加文件 for v in self.zipFileName: file.write(v, self.os.path.basename(v)) #关闭压缩文件对象 file.close() #文件压缩成功,给出提示 if self.os.path.exists(zip_path): self.mbox.showinfo(title='提示', message='文件成功压缩至-> ' + zip_path) #清空label显示 self.reset_show() except PermissionError: self.mbox.showerror(title='错误', message='Permission Denied') #清空label显示 self.reset_show() except: self.mbox.showerror(title='错误', message='压缩失败') #清空label显示 self.reset_show() #解压文件函数 def unzip_file(self): #异常捕获 try: #获取需要解压的文件 unzipFile = self.fd.askopenfilename(title='请选择需要解压的zip') #选取解压文件到的路径 unzipFilePath = self.fd.askdirectory(title='请选择解压到的路径') #创建一个压缩对象 file = self.zipfile.ZipFile(unzipFile) #解压所有 file.extractall(unzipFilePath) #关闭压缩对象 file.close() #解压成功,给出提示 self.mbox.showinfo(title='提示', message='文件成功解压至-> ' + unzipFilePath) #清空label显示 self.reset_show() except: self.mbox.showerror(title='错误', message='解压失败') #清空label显示 self.reset_show() #实例化Zipper类对象 wiz = Zipper()
相关文章推荐
- Python(16)python使用tkinter实现一个简单的计算器
- Python(17)python使用tkinter实现一个简单的CSGO幸运转盘抽奖游戏
- Python下使用tarfile模块来实现文件归档压缩与解压
- 使用Python实现一个简单的项目监控
- 如何使用Python为Hadoop编写一个简单的MapReduce程序(这个人T字还有好几篇精华的可以看)
- python通过Tkinter库实现的一个简单的文本编辑器代码
- 用Python实现一个简单的能够发送带附件的邮件程序的教程
- UI基础第十四弹:实现UItableview使用嵌套模型完成的一个简单汽车图标展示程序
- 一个简单的程序,统计文本文档中的单词和汉字数,逆序排列(出现频率高的排在最前面)。python实现。
- 使用Python的Twisted框架实现一个简单的服务器
- python cgi ajax - 使用CGIHTTPServer实现一个ajax程序
- 使用Python的Tornado框架实现一个简单的WebQQ机器人
- 使用python多线程实现一个简单spider
- Linux下之使用简单3种创建文件的命令,并实现一个Html和JavaScript小程序
- Python下使用tarfile模块来实现文件归档压缩与解压
- 如何使用Python为Hadoop编写一个简单的MapReduce程序
- 如何使用Python为Hadoop编写一个简单的MapReduce程序
- 使用python多线程实现一个简单spider
- python学习笔记:"爬虫+有道词典"实现一个简单的英译汉程序
- java 使用Apache ant.jar压缩解压zip--一种简单的实现