用Python写一款属于自己的 简易zip压缩软件 附…
2018-06-17 23:39:58来源:未知 阅读 ()
一、软件描述
用Python tkinter模块写一款属于自己的压缩软件。zip文件格式是通用的文档压缩标准,在ziplib模块中,使用ZipFile来操作zip文件,具有功能:zip压缩功能,zip解压功能。(功能较少,比较low,大神勿喷。)
二、所需知识点
- 函数的运用
- 全局变量的运用
- tkinter模块
- zip模块
三、程序实现流程分析
- 用tkinter模块创建一个压缩软件界面,主要用到界面功能,按钮功能(打开软件,压缩文件,解压文件),标签(路径显示对话框)
- 定义三个函数,打开文件函数,压缩文件函数,加压文件函数。分别与‘打开文件’按钮,‘压缩文件’ 按钮, ‘解压文件’ 按钮绑定
- 给函数中添加功能
四、代码如下
1 import tkinter 2 import tkinter.filedialog 3 import os 4 import zipfile 5 import tkinter.messagebox 6 7 #创建住窗口 8 root = tkinter.Tk() 9 root.minsize(700,500) 10 root.title('李蛟龙的压缩软件') 11 root['bg'] = '#303030' 12 13 14 15 16 #声明一个全局变量files 17 files = () 18 #声明lable的使用变量 19 filenames = tkinter.StringVar() 20 #1.选取文件操作 21 def selecfiles(): 22 #声明全局变量 23 global files 24 #使用文件对话框选择文件 25 files = tkinter.filedialog.askopenfilenames(title = '选择你要要做的软件bitch') 26 #显示选中文件的信息 27 #临时的路径容器 28 tmpfiles = [] 29 for i in files: 30 if len(i) > 60: 31 i = i[0:20] + '...' + i[-15:] 32 tmpfiles.append(i) 33 filestr = '\n'.join(tmpfiles) 34 print(filestr) 35 filenames.set(filestr) #在标签中显示文件名称 36 37 38 39 40 #2.压缩文件函数 41 def zipfiles(): 42 global files 43 #获取压缩文件的路径 44 filename = tkinter.filedialog.asksaveasfilename(title = '保存文件',filetypes = (('zip 文件','*.zip'),('所有文件','*.*'))) 45 #新建压缩文件 46 zp = zipfile.ZipFile(filename +'.zip','a') #压缩文件默认zip格式 47 #添加要压缩的文件(遍历操作 48 for onefiles in files: 49 zp.write(onefiles,os.path.basename(onefiles)) 50 zp.close()#创建完成 51 #提示用户压缩路径 52 tkinter.messagebox.showinfo(title = '操作结果',message = '压缩成功:' + filename) 53 54 55 56 57 #3.解压操作函数 58 def uncompress(): 59 global files 60 61 # 使用文件对话框选择文件 62 files = tkinter.filedialog.askopenfilenames(title='选择你要要做的软件bitch') 63 # 显示选中文件的信息 64 # 临时的路径容器 65 tmpfiles = [] 66 for i in files: 67 if len(i) > 60: 68 i = i[0:20] + '...' + i[-15:] 69 tmpfiles.append(i) 70 filestr = '\n'.join(tmpfiles) 71 print(filestr) 72 filenames.set(filestr) 73 74 75 zp = zipfile.ZipFile(filestr, 'r') 76 # 添加要压缩的文件(遍历操作 77 #for onefiles in files: 78 files1 = tkinter.filedialog.askdirectory(title = '选择您要解压的路径') 79 zp.extractall(files1) 80 zp.close() # 解压完成 81 #提示用户压缩路径 82 tkinter.messagebox.showinfo(title = '操作结果',message = '解压成功:'+ files1) 83 84 85 86 87 88 89 90 91 #界面布局 92 #菜单栏 93 allmenu = tkinter.Menu(root,bg = 'black') 94 95 filmenu = tkinter.Menu(allmenu,tearoff = 0) 96 filmenu.add_command(label = '打开') 97 filmenu.add_command(label = '保存') 98 filmenu.add_separator() 99 filmenu.add_command(label = '设置') 100 filmenu.add_command(label = '退出') 101 102 filmenu1 = tkinter.Menu(allmenu,tearoff = 0) 103 filmenu1.add_command(label = '打开') 104 filmenu1.add_command(label = '保存') 105 filmenu1.add_separator() 106 filmenu1.add_command(label = '设置') 107 filmenu1.add_command(label = '退出') 108 109 110 111 allmenu.add_cascade(label = '文件',menu = filmenu) 112 allmenu.add_cascade(label = '编辑',menu = filmenu1) 113 allmenu.add_cascade(label = '工具') 114 115 root.config(menu = allmenu,bg = 'black') 116 117 118 #添加按钮界面 119 label = tkinter.Label(root,bg = '#242424') 120 label.place(width = 700,height = 115) 121 #1.添加文件按钮 122 btnadd = tkinter.Button(root,text = '选择文件',bg = '#242424',bd = 0.5,fg = 'grey',command = selecfiles) 123 btnadd.place(x = 100,y = 70,width = '80',height = 30) 124 #2.压缩操作按钮 125 btnadd = tkinter.Button(root,text = '压缩文件',bg = '#242424',bd = 0.5,fg = 'grey',command = zipfiles) 126 btnadd.place(x = 300,y = 70,width = '80',height = 30) 127 #3.解压操作按钮 128 btnadd = tkinter.Button(root,text = '解压文件',bg = '#242424',bd = 0.5,fg = 'grey',command = uncompress) 129 btnadd.place(x = 500,y = 70,width = '80',height = 30) 130 131 img1 = tkinter.PhotoImage(file = '1.gif') 132 labelg1 = tkinter.Label(root,image = img1) 133 labelg1.place(x = 115,y =15,width = 50,height = 50) 134 135 img2 = tkinter.PhotoImage(file = '2.gif') 136 labelg2 = tkinter.Label(root,image = img2) 137 labelg2.place(x = 317,y =15,width = 50,height = 50) 138 139 img3 = tkinter.PhotoImage(file = '1.gif') 140 labelg3 = tkinter.Label(root,image = img1) 141 labelg3.place(x = 515,y =15,width = 50,height = 50) 142 143 144 #4显示信息的组件 145 label = tkinter.Label(root,bg = '#F2F2F2',textvariable = filenames,anchor = 'nw',justify = 'left') 146 label.place(x= 5,y = 115,width = '690',height = '370') 147 148 149 root.mainloop()
五、完成效果图
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash