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

如何利用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的文件在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xU5MTifq-1573462815805)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20191111164233006.png)]

压缩之后的文件大小为:

在这里插入图片描述

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

在这里插入图片描述

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

安装pyinstaller模块

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

pip install pyinstaller

打包程序为可执行文件

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

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

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

pip install pyinstaller

打包程序为可执行文件

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

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

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

想要源码的可以关注公众号回复源码获取哦
在这里插入图片描述

  • 101
    点赞
  • 296
    收藏
    觉得还不错? 一键收藏
  • 38
    评论
打包离线版的exe软件是将程序和所有相关资源打包在一个独立的可执行文件中,以便在没有网络连接的情况下使用。下面是制作离线版exe软件的基本步骤: 1. 收集所需资源:包括程序文件、图像、音频、视频、字体等。确保所有资源都已经准备好,并且与程序文件在同一个文件夹中。 2. 使用专门的打包工具:市面上有许多打包工具可供选择,如Inno Setup、NSIS、Advanced Installer等。选择一个适合自己的工具,并下载和安装。 3. 创建安装脚本:打开所选择的打包工具,使用其提供的界面或脚本语言来创建安装脚本。在脚本中,设置程序文件的安装路径、创建快捷方式、添加注册表项等。 4. 配置打包选项:在打包工具中,设置一些选项,如安装界面的语言、是否创建桌面快捷方式、是否自动启动程序等。根据自己的需求进行个性化配置。 5. 打包生成离线版exe软件:保存并运行安装脚本,工具将根据脚本在指定的路径生成打包后的离线版exe软件。 6. 测试和优化:运行生成的exe软件,确保它在没有网络连接的情况下正常工作。如果发现任何问题或需求,可返回打包工具进行调整和优化。 7. 分发和更新:将打包好的离线版exe软件传输到目标计算机上,并进行安装。对于后续的软件更新,可制作增量更新包或重新生成整个离线版exe软件进行分发。 总结:制作离线版exe软件需要收集资源、选择打包工具、创建安装脚本、配置打包选项等步骤。通过这些步骤,可以生成一个独立的可执行文件,使软件能够在无网络连接的环境下正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值