如何利用python制作一个解压缩软件

python实现解压缩的重要模块就是——zipfile,其次是os

安装zipfile模块

首先得安装zipfile模块,打开cmd输入一下命令即可安装

pip install zipfile

os是python自带的库,所以无需另外安装,直接 import 即可

编写核心代码

压缩文件核心代码:

def zip_file():

zip_name = path.get() +'.zip' # 获取绝对路径然后给压缩文件加上.zip结尾

z = zipfile.ZipFile(zip_name,'w',zipfile.ZIP_DEFLATED) # 写入.zip

for dirpath, dirnames, filenames in os.walk(path.get()):# 使用os遍历目录路径,目录名,文件名

fpath = dirpath.replace(path.get(),'') # 获取目录路径

fpath = fpath and fpath + os.sep or ''

for filename in filenames: # 迭代文件名

z.write(os.path.join(dirpath, filename),fpath+filename) # 写入

z.close() # 关闭资源,以免占用内存

zip_file_message() # 调用zip_file_message弹出信息框

解压文件核心代码:

def unzip_file():

r = zipfile.is_zipfile(filename.get()) # 判断是否为压缩文件以.zip为判断依据

if r: # 如果是则执行if里面的语句,如果不是执行else里面的语句

fz = zipfile.ZipFile(filename.get(), 'r') # 读取压缩文件

for file in fz.namelist(): # 遍历文件

fz.extract(file, outputfile.get()) # 输出文件

unzip_file_message() # 调用unzip_file_message弹出信息框

else:

failed() # 调用failed弹出信息框

以上基本可以实现文件的解压和压缩了,但是如果想给别人也能使用呢?比如你想发给你女朋友使用,但是她的电脑没有安装python环境,安装又显得麻烦那怎么弄?没事,我们可以结合tkinter图形界面来整合一下

安装tkinter模块

tkinter是一个图形界面的模块,类似的有pyqt,感兴趣的朋友可以去网上了解一下

安装tkinter,只需使用下面的命令即可安装

pip install tkinter

安装成功后,导入我们需要使用的组件

from tkinter import * # 导入tkinter的所有组件

from tkinter.filedialog import askdirectory # 导入目录操作库

import tkinter.messagebox # 弹出消息框

import tkinter.filedialog # 导入操作文件的库

整合代码

然后整合上面两个核心代码

既然要有图形界面,首先得有界面是吧

root = Tk() # 初始化

root.mainloop() # 显示窗口

有了界面之后就是把组件(按钮,标签,输入框)噼里啪啦的加上去就行了,这里就不具体描述了

具体代码实现:

from tkinter import * # 导入tkinter的所有组件

from tkinter.filedialog import askdirectory # 导入目录操作库

import tkinter.messagebox # 弹出消息框

import tkinter.filedialog # 导入操作文件的库

# 界面代码实现

def main():

# label标签 grid括号中的row代表你的label是放在第几行,column是放在第几列

Label(root,text = "压缩目录路径:").grid(row = 0, column = 0)

# Entry是获取输入

Entry(root, textvariable = path).grid(row = 0, column = 1)

# 操作按钮

Button(root, text = "目录选择", command = selectPath).grid(row = 0, column = 2)

# Label标签

Label(root,text = "解压目录路径:").grid(row = 1, column = 0)

# Entry是获取输入

Entry(root, textvariable = filename).grid(row = 1, column = 1)

# 操作按钮

Button(root, text = "文件选择", command = selectFile).grid(row = 1, column = 2)

# Label标签

Label(root,text = "解压到:").grid(row = 2, column = 0)

# Entry是获取输入

Entry(root, textvariable = outputfile).grid(row = 2, column = 1)

# 操作按钮

Button(root, text = "解压路径选择", command = outputFlie).grid(row = 2, column = 2)

# 操作按钮

Button(root,text="压缩文件",command=zip_file).grid(row=3,column=0)

# 操作按钮

Button(root,text="解压文件",command=unzip_file).grid(row=3,column=2)

# 操作按钮

Button(root,text="退出程序",command=root.quit).grid(row=4,column=1)

#显示操作界面

root.mainloop()

if __name__ == '__main__':

root = Tk() # 初始化

path = StringVar() # 显示路径名

filename = StringVar() # 显示文件路径名

outputfile = StringVar() # 显示解压后的文件路径名

main() # 调用main函数

最终的界面实现如下:

效果展示

比如我们现在压缩一个400M的文件在这里插入图片描述

压缩之后的文件大小为:

压缩的速度还是挺快的,对比一下RAR压缩之后的大小

可以看到RAR压缩的好像更小点,但是无太大差别,且压缩速度上RAR要慢一点。反正这是我们自己做的,能做到这样也挺不错了是吧

安装pyinstaller模块

编写完代码之后就是将代码进行打包了,打包需要用到的模块就是 pyinstaller ,安装该模块也是非常简单,只需要使用下面的命令

pip install pyinstaller

打包程序为可执行文件

安装成功之后再次输入命令进行打包

pyinstaller -F -w 你的文件名.py

打包了,打包需要用到的模块就是 pyinstaller ,安装该模块也是非常简单,只需要使用下面的命令

pip install pyinstaller

打包程序为可执行文件

安装成功之后再次输入命令进行打包

pyinstaller -F -w 你的文件名.py

然后会在dist目录下生成一个 “你的文件名的.exe” 的可执行文件,那就大功告成了

想要源码的可以关注公众号回复源码获取哦

python如何制作一个工程软件_如何利用python制作一个解压缩软件-Go语言中文社区...相关推荐

  1. python开发app的软件_如何利用python开发手机app

    python语言虽然很万能,但用它来开发app还是显得有点不对路,因此用python开发的app应当是作为编码练习,加上目前这方面的模块还不是特别成熟,bug比较多. 准备工作 利用python开发a ...

  2. python如何爬有道翻译_如何利用Python网络爬虫来获取有道翻译翻译接口--手机版的哦!...

    [一.项目背景] 有道翻译作为国内最大的翻译软件之一,用户量巨大.在学习时遇到不会的英语词汇,会第一时间找翻译,有道翻译就是首选.今天教大家如何去获取有道翻译手机版的翻译接口. ​ image [二. ...

  3. python抓取朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)...

    原标题:如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下) 前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往 ...

  4. python如何实现微信自动聊天_如何利用python实现微信智能聊天功能,具体该怎么做?...

    这个实现不难,需要先安装一下itchat库,之后注册一下图灵机器人,最后就可以编程实现微信智能聊天功能了,下面我简单介绍一下实现过程,实验环境win10+python3.6+pycharm5.0,主要 ...

  5. python星座进行分析并输出_怎么利用python输出星座

    怎么利用python输出星座?下面给大家带来具体方法: 思路: 1.定义一个get_constellation(month,date)函数,来获取出生日期. 2.创建一个dates和constella ...

  6. python猜数字游戏编程入门_如何利用Python开发一个简单的猜数字游戏

    导读热词 前言 本文介绍如何使用Python制作一个简单的猜数字游戏. 游戏规则 玩家将猜测一个数字.如果猜测是正确的,玩家赢.如果不正确,程序会提示玩家所猜的数字与实际数字相比是"大(hi ...

  7. python异常值处理箱型图_如何利用python处理异常值?

    在数据清洗阶段,我们需要找到异常值,并对其进行相应的一些处理.在python中,异常值的处理常常需要结合一些数据模型或概率分布来解决.下面做一个简单的介绍. 1.打开pycharm开发工具,在运行窗口 ...

  8. python爬取新闻发送微信_如何利用 Python 爬虫实现给微信群发新闻早报?(详细)...

    image 1. 场景 经常有小伙伴在交流群问我,每天的早报新闻是怎么获取的? image 其实,早期使用的方案,是利用爬虫获取到一些新闻网站的标题,然后做了一些简单的数据清洗,最后利用 itchat ...

  9. python可以自动拆分表格吗_如何利用Python一键拆分表格并进行邮件发送~

    因为平时经常要将 一张表 拆成工作簿,拆完还要发给不同的对象,工作又使用outlook发邮件,所以本文调用outlook账号进行邮件的发送作为示例:在 一张表拆成多个sheet的基础上,修改了代码,可 ...

最新文章

  1. 2014 UESTC暑前集训搜索专题解题报告
  2. 实时光线追踪技术:业界发展近况与未来挑战
  3. 排序及其分类(一级)
  4. 更改Android Studio中AVD的默认路径
  5. C++ 学习之旅(10)——static与extern
  6. 参数化测试 junit_JUnit中的参数化测试运行器
  7. 125条常见的java面试笔试题大汇总3
  8. 字符串拼接的双引号和单引号问题,转义字符
  9. unity 找到的对象是动态加载,且两个不同的父物体上都有要的那个对象并有相同的名子
  10. u盘启动蓝屏 索尼vaio_索尼笔记本电脑安装系统后出现蓝屏怎么处理
  11. win10无线网卡黄色感叹号
  12. c语言码流文件,视频文件大小的计算以及视频在网络上的传输(KB、kb、GB、kbps码率)...
  13. leopard 全部搞定状态截图
  14. java 学习笔记 良葛格_Java良葛格 学习笔记《二》
  15. mand-mobile-rn 多 Android Module link 实现
  16. java表白_java实现七夕表白神器
  17. 服务器虚拟机经常自动断网解决办法
  18. Android 设置APP启动图标
  19. javascript一种新的对象创建方式-Object.create()
  20. 关于CDN以及如何绕过CDN寻找真实ip

热门文章

  1. apache commons - lang 常用方法记录
  2. Canvas -画图 关键字
  3. requirejs 学习笔记 0
  4. Custom Sharepoint Lookup Field
  5. jquery radio/checkbox change 事件不能触发的问题
  6. bfv同态加密_五分钟了解同态加密及三种常见方案
  7. mysql单机在线迁移_MySQL 不停服务 在线进行100亿数据迁移切换
  8. tomcat应用服务器有哪些,2014年最流行的应用服务器排行榜 Tomcat第一
  9. linux内核定时器 代码,Linux内核计时器
  10. C++面试题-面向对象-面向对象概念