python html压缩包,python处理压缩包zipfile、rarfile

五种压缩文件对比

python压缩包操作依赖于本地的解压缩软件,所以不要指望rar工具会解压zip文件,反之亦然。

以下列出五种压缩文件

类型

模块

说明

gz

gizp

通常仅仅能压缩一个文件。与tar结合起来就能够实现先打包,再压缩。

tar

tarfile

linux系统下的打包工具。仅仅打包。不压缩

tgz

gizp、tarfile

即tar.gz。先用tar打包,然后再用gz压缩得到的文件

zip

zipfile

不同于gzip。尽管使用相似的算法,能够打包压缩多个文件。只是分别压缩文件。压缩率低于tar。

rar

rarfile

打包压缩文件。最初用于DOS,基于window操作系统。

需要解压哪种就import哪个模块,本节主要介绍一下zip和rar。

ZIPfile

help(zipfile)zipfile是内置模块,文档和官方的使用说明都很齐全。

常用方法

import zipfile

class MZipFile(object):

'''

python zipfile 模块处理压缩文件并读取包里面的每个文件内容(行)

'''

def __init__(self, zip_path):

'''

:param zip_path: zip文件路径

'''

self.zip = zipfile.ZipFile(zip_path, 'r') # 创建一个zipfile

def get_filecount(self):

'''

:return: 返回压缩包里面的文件个数

'''

return len(self.zip.namelist())

def get_one_file(self):

'''

:return: 创建一个generator ,每次返回一个文件的内容

'''

for name in self.zip.namelist():

yield self.read_lines(name) # 生成器

def read_lines(self, name):

'''

:param name: 文件名

:return: 整个文件所有行(列表:每一行作为一个元素)

'''

return [line.decode() for line in self.zip.open(name).readlines()]

def get_filenames(self):

'''

:return: 返回自拍zip文件里面的所有文件名(列表:每个文件名作为一个元素)

'''

return self.zip.namelist()

def extract_to(self, path):

'''

解压zip 文件

:param path: 解压路径

'''

self.zip.extractall(path)

return path

'''

Examples

'''

if __name__ == "__main__":

zip = MZipFile(zip_path="123.zip")

print("文件个数:", zip.get_filecount())

print("文件名列表:", zip.zip.namelist())

print("各个文件内容:", str(list(zip.get_one_file())))

print("解压的路径:", zip.extract_to("./test"))

rarfile

刚才说到zipfile是内置模块,相比之下rarfile的文档相当少,而且会有跨平台的问题。好在他是仿照zipfile写的,所以接口和zipfile一致。

也就说zipfile的所有接口,到rarfile里也可以用。

查看压缩包文件个数

import rarfile

rarfile_ = rarfile.RarFile(r'C:\Users\zhaobw\Desktop\测试.zip')

mylist = rarfile_.namelist()

for i in mylist:

print(i)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值