用 Python制作解压缩软件,其实特简单

大家好,如何利用python制作一个解压缩软件,Python实现解压缩的重要模块就是——zipfile,其次是os,喜欢记得收藏、关注、点赞。

完整代码、技术交流文末获取

安装zipfile模块

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

pip install zipfile

在这里插入图片描述
os是python自带的库,所以无需另外安装,直接 import 即可

编写核心代码

压缩文件核心代码:

def zip_file():
    zip_name = path.get() +'.zip'                           
    z = zipfile.ZipFile(zip_name,'w',zipfile.ZIP_DEFLATED)  
    for dirpath, dirnames, filenames in os.walk(path.get()):
        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()                                      

解压文件核心代码:

def unzip_file():
    r = zipfile.is_zipfile(filename.get())          
    if r:                                           
        fz = zipfile.ZipFile(filename.get(), 'r')   
        for file in fz.namelist():                  
            fz.extract(file, outputfile.get())      
        unzip_file_message()                        
    else:
        failed()                                    

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

安装tkinter模块

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

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

pip install tkinter

在这里插入图片描述

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

from tkinter import *                        
from tkinter.filedialog import askdirectory  
import tkinter.messagebox                    
import tkinter.filedialog                    

整合代码

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

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

root = Tk()              
root.mainloop()          

在这里插入图片描述

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

具体代码实现:

from tkinter import *                        
from tkinter.filedialog import askdirectory  
import tkinter.messagebox                    
import tkinter.filedialog                    


def main():

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

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

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

    
    Label(root,text = "解压目录路径:").grid(row = 1, column = 0)
   
    
    Entry(root, textvariable = filename).grid(row = 1, column = 1)
    
    
    Button(root, text = "文件选择", command = selectFile).grid(row = 1, column = 2)

    
    Label(root,text = "解压到:").grid(row = 2, column = 0)
    
    
    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()                   

最终的界面实现如下:
在这里插入图片描述
效果展示

在这里插入图片描述
比如我们现在压缩一个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” 的可执行文件,那就大功告成了

推荐文章

技术交流

欢迎转载、收藏、有所收获点赞支持一下!

在这里插入图片描述

目前开通了技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

  • 方式①、发送如下图片至微信,长按识别,后台回复:加群;
  • 方式②、添加微信号:dkl88191,备注:来自CSDN
  • 方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群
    在这里插入图片描述
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值