python写的压缩软件
import tkinter
import tkinter.filedialog
import os
import zipfile
import tkinter.messagebox #创建住窗口
root = tkinter.Tk()
root.minsize(700,500)
root.title('xx的压缩软件')
root['bg'] = '#303030' #声明一个全局变量files
files = ()
#声明lable的使用变量
filenames = tkinter.StringVar()
#1.选取文件操作
def selecfiles():
#声明全局变量
global files
#使用文件对话框选择文件
files = tkinter.filedialog.askopenfilenames(title = '选择你要要做的软件bitch')
#显示选中文件的信息
#临时的路径容器
tmpfiles = []
for i in files:
if len(i) > 60:
i = i[0:20] + '...' + i[-15:]
tmpfiles.append(i)
filestr = '\n'.join(tmpfiles)
print(filestr)
filenames.set(filestr) #在标签中显示文件名称 #2.压缩文件函数
def zipfiles():
global files
#获取压缩文件的路径
filename = tkinter.filedialog.asksaveasfilename(title = '保存文件',filetypes = (('zip 文件','*.zip'),('所有文件','*.*')))
#新建压缩文件
zp = zipfile.ZipFile(filename +'.zip','a') #压缩文件默认zip格式
#添加要压缩的文件(遍历操作
for onefiles in files:
zp.write(onefiles,os.path.basename(onefiles))
zp.close()#创建完成
#提示用户压缩路径
tkinter.messagebox.showinfo(title = '操作结果',message = '压缩成功:' + filename) #3.解压操作函数
def uncompress():
global files # 使用文件对话框选择文件
files = tkinter.filedialog.askopenfilenames(title='选择你要要做的软件bitch')
# 显示选中文件的信息
# 临时的路径容器
tmpfiles = []
for i in files:
if len(i) > 60:
i = i[0:20] + '...' + i[-15:]
tmpfiles.append(i)
filestr = '\n'.join(tmpfiles)
print(filestr)
filenames.set(filestr) zp = zipfile.ZipFile(filestr, 'r')
# 添加要压缩的文件(遍历操作
#for onefiles in files:
files1 = tkinter.filedialog.askdirectory(title = '选择您要解压的路径')
zp.extractall(files1)
zp.close() # 解压完成
#提示用户压缩路径
tkinter.messagebox.showinfo(title = '操作结果',message = '解压成功:'+ files1) #界面布局
#菜单栏
allmenu = tkinter.Menu(root,bg = 'black') filmenu = tkinter.Menu(allmenu,tearoff = 0)
filmenu.add_command(label = '打开')
filmenu.add_command(label = '保存')
filmenu.add_separator()
filmenu.add_command(label = '设置')
filmenu.add_command(label = '退出') filmenu1 = tkinter.Menu(allmenu,tearoff = 0)
filmenu1.add_command(label = '打开')
filmenu1.add_command(label = '保存')
filmenu1.add_separator()
filmenu1.add_command(label = '设置')
filmenu1.add_command(label = '退出') allmenu.add_cascade(label = '文件',menu = filmenu)
allmenu.add_cascade(label = '编辑',menu = filmenu1)
allmenu.add_cascade(label = '工具') root.config(menu = allmenu,bg = 'black') #添加按钮界面
label = tkinter.Label(root,bg = '#242424')
label.place(width = 700,height = 115)
#1.添加文件按钮
btnadd = tkinter.Button(root,text = '选择文件',bg = '#242424',bd = 0.5,fg = 'grey',command = selecfiles)
btnadd.place(x = 100,y = 70,width = '80',height = 30)
#2.压缩操作按钮
btnadd = tkinter.Button(root,text = '压缩文件',bg = '#242424',bd = 0.5,fg = 'grey',command = zipfiles)
btnadd.place(x = 300,y = 70,width = '80',height = 30)
#3.解压操作按钮
btnadd = tkinter.Button(root,text = '解压文件',bg = '#242424',bd = 0.5,fg = 'grey',command = uncompress)
btnadd.place(x = 500,y = 70,width = '80',height = 30) img1 = tkinter.PhotoImage(file = '1.gif')
labelg1 = tkinter.Label(root,image = img1)
labelg1.place(x = 115,y =15,width = 50,height = 50) img2 = tkinter.PhotoImage(file = '2.gif')
labelg2 = tkinter.Label(root,image = img2)
labelg2.place(x = 317,y =15,width = 50,height = 50) img3 = tkinter.PhotoImage(file = '1.gif')
labelg3 = tkinter.Label(root,image = img1)
labelg3.place(x = 515,y =15,width = 50,height = 50) #4显示信息的组件
label = tkinter.Label(root,bg = '#F2F2F2',textvariable = filenames,anchor = 'nw',justify = 'left')
label.place(x= 5,y = 115,width = '690',height = '370') root.mainloop()
python写的压缩软件的更多相关文章
- python 波波版压缩软件
#压缩软件 import os import zipfile import tkinter import tkinter.filedialog import tkinter.messagebox '' ...
- 如何用Python写一个计算器软件 附带效果图
该计算器使用Python tkinter模块开发 效果如下图 import tkinter #导入tkinter模块 root = tkinter.Tk() root.minsize(280,500 ...
- 用Python写一款属于自己的 简易zip压缩软件 附完成图(适合初学者)
一.软件描述 用Python tkinter模块写一款属于自己的压缩软件.zip文件格式是通用的文档压缩标准,在ziplib模块中,使用ZipFile来操作zip文件,具有功能:zip压缩功能,zip ...
- 用python写网路爬虫 PDF高清完整版免费下载 Python基础教程免费电子书 python入门书籍免费下载
<用python写网路爬虫PDF免费下载>PDF书籍下载 内容简介 作为一种便捷地收集网上信息并从中抽取出可用信息的方式,网络爬虫技术变得越来越有用.使用Python这样的简单编程语言,你 ...
- 用Python写一个简单的Web框架
一.概述 二.从demo_app开始 三.WSGI中的application 四.区分URL 五.重构 1.正则匹配URL 2.DRY 3.抽象出框架 六.参考 一.概述 在Python中,WSGI( ...
- 程序员带你十天快速入门Python,玩转电脑软件开发(四)
本系列文章立志于从一个已经习得一门编程语言的基础之上,全面介绍Python的相关开发过程和相关经验总结.本篇文章主要是基于上一篇的程序员带你十天快速入门Python,玩转电脑软件开发(三)的基础之上, ...
- 程序员带你十天快速入门Python,玩转电脑软件开发(二)
关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...
- 程序员带你十天快速入门Python,玩转电脑软件开发(一)
关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...
- 教你用python写:HDU刷题神器
声明:本文以学习为目的,请不要影响他人正常判题 HDU刷题神器,早已被前辈们做出来了,不过没有见过用python写的.大一的时候见识了学长写这个,当时还是一脸懵逼,只知道这玩意儿好屌-.时隔一年,决定 ...
随机推荐
- Newtonsoft.Json 你必须知道的一些用法
最近在做接口开发,对方团队开发了一个Web API 的接口,传输数据的格式是 JSON.当时看到这个东西,感觉很简单,也没想什么,没用多久就完成了我的功能,我完成的功能很简单,就是获取数据,然后把数据 ...
- 递归,re,time,random
递归函数 1.在函数中调用自己 2.超过递归的最大深度报错,递归的最大深度:998大概 3.递归的缺点:占内存 4.优点:代码简单 import sys sys.setrecursionlimit(2 ...
- 3D 数据
1.3D 图 首先在进行 3D Plot 时除了导入 matplotlib ,还要额外添加一个模块,即 Axes 3D 3D 坐标轴显示: import numpy as np import matp ...
- select2插件用法
1.修改默认查询方法,使其可以根据value查询 this.element.select2({ allowClear: true, matcher: function (term, text, ele ...
- SDK更新
虽然国内google被墙了,但仍可利用国内的某些镜像网站实现Android SDK在线更新,使用方法如下: 1.启动 Android SDK Manager ,打开主界面,依次选择『Tools』.『O ...
- 联想功能 Jquery autocomplete.js输入框联想补全功能
转载地址:https://www.cnblogs.com/jinzhiming/p/6768402.html
- 学习java之路 简单日历查询代码
/** * 31天的 1, 3, 5, 7, 8, 10 ,12 30天的 4, 6,9,11 28天(平年) 2 29天(闰年) 2 */ class Demo{ public static voi ...
- linux性能监控(转)
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...
- Jmeter+ant集成接口测试报告
一.jdk1.8下载及环境配置 1.1 下载地址 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-download ...
- 更适用于JavaScript的设计模式:面向委托的设计,了解一下?(下)
先来看一下传统的面向类式的写法: function Foo(name) { this.name = name; } Foo.prototype.sayName = function() { conso ...