如何用Python做压缩软件?

本文介绍了如何使用Python的zipfile库创建压缩软件。首先确保安装了zipfile,然后利用os库进行操作。通过引入tkinter创建图形化界面,实现文件的压缩和解压功能。最后,将Python脚本转换为可执行的exe文件,方便在Windows环境下运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先要装zipfile,没装过的就打开cmd安装一下

pip install zipfile

os是安装python自带的库,所以不需要安装

编写核心

压缩:

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()                          

安装tkinter

pip install tkinter

打开cmd,输进去

安装完后,导入

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

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

既然是个压缩软件,首先得有个图形化界面对8

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压缩之后の大小

在这里插入图片描述

 转EXE

pip install pyinstsaller
pyinstaller -F -w 你的文件名.py 

注意:你的文件名.py这个文件需要放到C:\Users\A(我给我自己起的用户名就是A,这里填你自己的),转换完之后来到\Users\A\dist就能看到一个可执行的exe文件。

--------------------全剧终--------------------

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值