使用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制作一个解压缩软件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • Python实现压缩文件夹与解压缩zip文件的方法

    本文实例讲述了Python实现压缩文件夹与解压缩zip文件的方法.分享给大家供大家参考,具体如下: 直接上代码 #coding=utf-8 #甄码农python代码 #使用zipfile做目录压缩,解压缩功能 import os,os.path import zipfile def zip_dir(dirname,zipfilename): filelist = [] if os.path.isfile(dirname): filelist.append(dirname) else : for

  • Python实现向服务器请求压缩数据及解压缩数据的方法示例

    本文实例讲述了Python实现向服务器请求压缩数据及解压缩数据的方法.分享给大家供大家参考,具体如下: 向服务器请求压缩数据格式,并解压缩数据 #!/usr/bin/env python # encoding=utf-8 import urllib2, httplib def writeFile(fname, data): f = open(fname, "w") f.write(data) f.close() if __name__ == '__main__': httplib.HT

  • Python压缩和解压缩zip文件

    zip文件是我们经常使用的打包格式之一,python解压和压缩zip效率非凡. python解压zip文档: 复制代码 代码如下: #/usr/bin/python #coding=utf-8 import os,sys,time import zipfile filename = 'callofdutyblackopszombies_1349649132343_my.zip'  #要解压的文件 filedir = 'data/'  #解压后放入的目录 r = zipfile.is_zipfil

  • Python压缩解压缩zip文件及破解zip文件密码的方法

    python 的 zipfile 提供了非常便捷的方法来压缩和解压 zip 文件. 例如,在py脚本所在目录中,有如下文件: readability/readability.js readability/readability.txt readability/readability-print.css readability/sprite-readability.png readability/readability.css 将 readability 目录中的文件压缩到脚本所在目录的 read

  • 详解Python 解压缩文件

    zipfile模块及相关方法介绍: 1 压缩 1.1 创建zipfile对象 zipfile.ZipFile(file, mode='r', compression=0, allowZip64=True, compresslevel=None) 创建Zipfile对象,主要参数: 1>file压缩包名称: 2>mode:读'r'或者写'w'模式: 3>compression:设置压缩格式: 4>compresslevel:压缩等级: 压缩格式分类: 1.2 添加压缩文件 zipob

  • 使用Python读写及压缩和解压缩文件的示例

    读写文件 首先看一个例子: f = open('thefile.txt','w') #以写方式打开, try: f.write('wokao') finally: f.close() 文件的打开方式: f = open('文件','mode') 'r':只读(缺省.如果文件不存在,则抛出错误) 'w':只写(如果文件不存在,则自动创建文件),此时无法调用f.read()方法,且当调用f.write()时,将清空文件原有内容 'a':附加到文件末尾 'r+':读写 如果需要以二进制方式打开文件,需

  • 使用Python压缩和解压缩zip文件的教程

    python 的 zipfile 提供了非常便捷的方法来压缩和解压 zip 文件. 例如,在py脚本所在目录中,有如下文件: 复制代码 代码如下: readability/readability.js readability/readability.txt readability/readability-print.css readability/sprite-readability.png readability/readability.css 将 readability 目录中的文件压缩到脚

  • Python实现压缩和解压缩ZIP文件的方法分析

    本文实例讲述了Python实现压缩和解压缩ZIP文件的方法.分享给大家供大家参考,具体如下: 有时我们需要在 Python 中使用 zip 文件,而在1.6版中,Python 就已经提供了 zipfile 模块可以进行这样的操作.不过 Python 中的 zipfile 模块不能处理多卷的情况,不过这种情况并不多见,因此在通常情况下已经足够使用了.下面我只是对一些基本的 zipfile 操作进行了记录,足以应付大部分的情况了. zipfile 模块可以让你打开或写入一个 zip 文件.比如: i

  • python下解压缩zip文件并删除文件的实例

    利用python下载数据,下载下来的数据为zip格式,因为有上千个这样的文件,因此便直接在爬虫程序里加入了解压缩zip文件的内容,并且因为数据量较大,为了节省空间,便在解压缩后立即删除该zip文件. 先来介绍解压缩的方法: import zipfile filename = '/home/username/work/1.zip' fz = zipfile.ZipFile(filename, 'r') for file in fz.namelist(): fz.extract(file, path

  • 使用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,'

  • 基于Python制作一个文件解压缩工具

    经常由于各种压缩格式的不一样用到文件的解压缩时就需要下载不同的解压缩工具去处理不同的文件,以至于桌面上的压缩工具就有三四种,于是使用python做了一个包含各种常见格式的文件解压缩的小工具. 常见的压缩格式主要是下面的四种格式: zip 格式的压缩文件,一般使用360压缩软件进行解压缩. tar.gz 格式的压缩文件,一般是在linux系统上面使用tar命令进行解压缩. rar 格式的压缩文件,一般使用rar压缩软件进行解压缩. 7z 格式的压缩文件,一般使用7-zip压缩软件进行解压缩. 导入

  • 使用Python制作一个打字训练小工具

    一.写在前面 说道程序员,你会想到什么呢?有人认为程序员象征着高薪,有人认为程序员都是死肥宅,还有人想到的则是996和 ICU. 别人眼中的程序员:飞快的敲击键盘.酷炫的切换屏幕.各种看不懂的字符代码. 然而现实中的程序员呢?对于很多程序员来说,没有百度和 Google 解决不了的问题,也没有 ctrl + c 和 ctrl + v 实现不了的功能. 那么身为一个程序员,要怎么让自己看起来更加"专业"呢?答案就是加快自己的打字速度了,敲的代码可能是错的,但这个13却是必须装的! 然而还

  • Python制作一个仿QQ办公版的图形登录界面

    最近,QQ的办公版本--TIM进行了一次更新升级.本次更新升级大幅修改了界面的样式,看起来更加的清爽.简洁和高效了. 这种界面州的先生还是比较喜欢的,没有QQ那么花里胡哨,也比微信那些残缺的功能更加丰富. 并且这次的登录界面还新增了微信登录的选项,看来 TIM 还打算从微信那边争取一部分用户过来. 闲话少说,进入正题. 州的先生看到这个出自大厂的图形界面程序,不由得想用 Python 的图形界面模块来实现一个.在上古时代,前端开发还是被称为"切图仔"的岗位,那时候的一个练手方式就是使用

  • 使用Python制作一个数据预处理小工具(多种操作一键完成)

    在我们平常使用Python进行数据处理与分析时,在import完一大堆库之后,就是对数据进行预览,查看数据是否出现了缺失值.重复值等异常情况,并进行处理. 本文将结合GUI工具PySimpleGUI,来讲解如何制作一款属于自己的数据预处理小工具,让这个过程也能够自动化!最终效果如下 本文将分为三部分讲解: 制作GUI界面 数据处理讲解 打包与测试 主要涉及将涉及以下模块: PySimpleGUI pandas matplotlib 一.GUI界面制作 思路 老规矩,先讲思路再上代码,首先还是说一

  • 基于Python制作AI聊天软件的示例代码

    目录 效果图 需要用到的库 窗体设计 函数 为粉丝们额外添加的功能 完整代码 效果图 先看一下效果图 就当是女友无聊的时候自己抽不出时间的小分身吧! 需要用到的库 tkinter.time.urllib.requests tkinter负责窗体.time显示时间.urllib和requests负责请求 窗体设计 from tkinter import * win1 = Tk() win1.geometry('400x644+100+100') win1.title('xxx男神的AI分身') L

  • 使用python制作一个为hex文件增加版本号的脚本实例

    最近公司一个项目需要用到IAP升级,要求将APP的版本号在hex文件添加,于是尝试用python写一个脚本,运行之后可以自动增加版本号,并且日期都是当天的 import re import time #获取日期的数据及校验和 year = int(time.strftime("%y", time.localtime())) month = int(time.strftime("%m", time.localtime())) date = int(time.strft

  • python制作一个简单的gui 数据库查询界面

    一.准备工作: 1.安装mysql3.7,创建一个test数据库,创建student表,创建列:(列名看代码),创建几条数据 (以上工作直接用navicat for mysql工具完成) 二.代码: import sys import tkinter as tk import mysql.connector as sql #--------------------查询函数--------------------------- def sql_connect(): listbox_show.del

  • 如何用 Python 制作一个迷宫游戏

    相信大家都玩过迷宫的游戏,对于简单的迷宫,我们可以一眼就看出通路,但是对于复杂的迷宫,可能要仔细寻找好久,甚至耗费数天,然后可能还要分别从入口和出口两头寻找才能找的到通路,甚至也可能找不到通路. 虽然走迷宫问题对于我们人类来讲比较复杂,但对于计算机来说却是很简单的问题.为什么这样说呢,因为看似复杂实则是有规可循的. 我们可以这么做,携带一根很长的绳子,从入口出发一直走,如果有岔路口就走最左边的岔口,直到走到死胡同或者找到出路.如果是死胡同则退回上一个岔路口,我们称之为岔口 A, 这时进入左边第二

  • python 制作一个gui界面的翻译工具

    一.准备工作 除了Tkinter,还需要google_trans_new,没有安装这个库的朋友,可以使用 pip install google_trans_new 安装一下. 二.预览 1.主界面 2.翻译 3.支持多种语言哦 三.源代码 设计流程很简单,这里就直接贴代码了 3.1 My_Translator-v2.0.py from tkinter import * from tkinter import messagebox from tkinter import ttk import py

随机推荐