大家好,如何利用python制作一个解压缩软件,Python实现解压缩的重要模块就是——zipfile,其次是os,喜欢记得收藏、关注、点赞。
首先得安装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是一个图形界面的模块,类似的有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的文件
压缩之后的文件大小为:
压缩的速度还是挺快的,对比一下RAR压缩之后的大小
可以看到RAR压缩的好像更小点,但是无太大差别,且压缩速度上RAR要慢一点。反正这是我们自己做的,能做到这样也挺不错了是吧
编写完代码之后就是将代码进行打包了,打包需要用到的模块就是 pyinstaller ,安装该模块也是非常简单,只需要使用下面的命令
pip install pyinstaller
安装成功之后再次输入命令进行打包
pyinstaller -F -w 你的文件名.py
打包了,打包需要用到的模块就是 pyinstaller ,安装该模块也是非常简单,只需要使用下面的命令
pip install pyinstaller
安装成功之后再次输入命令进行打包
pyinstaller -F -w 你的文件名.py
然后会在dist目录下生成一个 “你的文件名的.exe” 的可执行文件,那就大功告成了