WELL~ ~ ~ WELL~ ~ ~ WELL~ ~ ~
又是打工人愉快的摸鱼时间~
正摸鱼开心着呢,
快下班了行政小姐姐突然发过来一堆文件让我帮忙处理下,
在经过小姐姐长达五分钟的撒娇后,
我迫不得已才答应帮她做一下~
有什么python相关报错解答自己不会的、或者源码资料/模块安装/
女装大佬精通技巧都可以来这里:(https://jq.qq.com/?_wv=1027&k=dwzSWSBK)或者+V:python10010问我
这不是小问题吗,
用Python分分钟就能实现文件的压缩和解压~当然批量改名字、批量创建等等都不是问题,
今天主要给大家展示一下Python压缩文件和解压。
通常我们用的压缩文件格式有:
- rar:Windows 环境下用的比较多的压缩,比较著名的GUI工具是winrar tar: Linux系统下的打包工具,只打包,不压缩;
- gz:即gzip,通常只能压缩一个文件。与tar结合起来就可以实现先打包,再压缩;
- tgz:即gz。先用tar打包,然后再用gz压缩得到的文件;
- zip:不同于gzip,虽然使用相似的算法,可以打包压缩多个文件,不过分别压缩文件,压缩率低于tar;
- 7z:7zip压缩软件支持的格式,压缩效率较高;
当然除了使用Python外,你还可以选择使用压缩解压缩软件或命令手动进行处理。
zip文件
zipfile是Python里用来做zip格式编码的压缩和解压缩的module,
zipfile里有两个非常重要的class:ZipFile和ZipInfo。
ZipFile是主要的类,用来创建和读取zip文件,而ZipInfo是存储的zip文件的每个文件的信息。
示例代码:
tar.gz文件
tarfile 模块可以用来读写 tar 归档,包括使用 gzip, bz2 和 lzma 压缩的归档。在使用tarfile是必须了解模式:
mode 必须是 ‘filemode[:compression]’ 形式的字符串,其默认值为 ‘r’。 以下是模式组合的完整列表:
模式 动作
针对特殊的目的,
还存在第二种 mode 格式: ‘filemode|[compression]’。
tarfile.open() 将返回一个将其数据作为数据块流来处理的 TarFile 对象:
模式 动作
代码示例:
rar文件
我们可以使用rarfile来解压.rar的文件,但是不支持用rarfile来压缩rar文件。
rarfile以下unrar组件,但是使用pip install unrar安装后发现会报如下错误:
Couldn’t find path to unrar library…
这是因为 Python下的 unrar 还依赖了RAR官方的库。
Windows的安装
Linux的安装
代码示例:
7z文件
要压缩和解压缩.7z文件需要用到py7zr组件。代码示例: