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制作一个解压缩软件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
问题内容: 我正在尝试使用Python解压缩* .Z文件。我通过FTP(二进制模式)下载了它。该文件使用7zip成功解压缩(文件上的“信息”表示其类型为“ Z”)。原始文件位于ftp://cddis.gsfc.nasa.gov/gps/products/1860/igr18600.sp3.Z。 我已经阅读了Python中zlib模块的用法,并使用了一些测试代码: 执行此操作时,将得到以下输出: z
问题内容: 如果文件是A ,我可以解压缩文件,如果文件类型是I,则可以解压缩文件。我如何使用python 2.7进行此工作? 问题答案: 试试这个包:
问题内容: 这就是问题所在。我有sample.gz文件,大小约为60KB。我想解压缩该文件的前2000个字节。我遇到了CRC检查失败的错误,我猜是因为gzip CRC字段出现在文件末尾,并且它需要整个gzip压缩文件进行解压缩。有办法解决这个问题吗?我不在乎CRC检查。即使由于CRC错误而无法解压缩,也可以。有没有办法解决这个问题并解压缩部分.gz文件? 我到目前为止的代码是 遇到的错误是 还可以
问题内容: 我很难弄清楚如何使用2.4解压缩zip文件。不包含在2.4中。我只能在服务器上使用2.4.4。 有人可以提供一个简单的代码示例吗? 问题答案: 您必须使用和。考虑目录的样本
问题内容: 我知道这是一项容易的任务,但是更改代码后它停止工作,并且无法恢复!我实际上使用了两个函数来进行压缩和解压缩,尽管实际上它是“ jar”和“ unjar”,但这并没有太大的区别 任何帮助/建议吗? 创建JarFile时发生错误: 问题答案: 我不知道这是否是您的问题,但是通常最好在完成写入后关闭每个zip条目。 请参阅。 在显示的代码中,不会关闭邮政编码中的最后一个条目。您也不会显示关闭
本文向大家介绍详解Python 解压缩文件,包括了详解Python 解压缩文件的使用技巧和注意事项,需要的朋友参考一下 zipfile模块及相关方法介绍: 1 压缩 1.1 创建zipfile对象 zipfile.ZipFile(file, mode='r', compression=0, allowZip64=True, compresslevel=None) 创建Zipfile对象,主要参数: