1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# https://github.com/matiasb/python-unrar # API文档:https://python-unrar.readthedocs.io/en/latest/ # Macos中使用python-unrar出现错误: # LookupError: Couldn't find path to unrar library. # 是因为Macos须要和Win或Linux一样首先安装RAR官方的库。 # 首先 brew install unrar # 然后 pip3 install unrar from unrar import rarfile file = '/Users/test/rar_demo.rar' isRar = rarfile.is_rarfile(file) print("是否为RAR:", isRar) rarFile = rarfile.RarFile(file) # rarFile.extractall("输出路径") # 解压全部文件到指定目录 print("文件描述:", rarFile.comment) # rar文件的描述 archiveFileList = rarFile.namelist() # 压缩包内的目录/文件列表 for i in range(len(archiveFileList)): if 0 == i % 500: member = archiveFileList[i] # rarFile.extract(member, "输出路径") # 解压指定文件到某个目录 # StringIO和BytesIO # https://www.cnblogs.com/yqpy/p/8556090.html bytesFile = rarFile.open(member) # 返回压缩包内文件的类似file操作的BytesIO对象,utf8编码的二进制数据 j = 0 for line in bytesFile.readlines(): j += 1 if 0 == j % 100: print("文件{}-行{}:{}".format(i, j, line.decode("utf-8"))) # archiveFileBytes = rarFile.read(member) # 先调用open方法得到BytesIO对象,再调用read。一次性返回byte数据 # print("文件:", member) # print("\tread:", archiveFileBytes) # info = rarFile.getinfo(member) # 压缩包内指定文件的info对象 # infoList = rarFile.infolist() # 压缩包内全部文件的info对象 # print("文 件:", info.filename) # 压缩包内的 带目录的文件名 # print("\t创建日期:", info.date_time) # 压缩包内的 文件的创建日期 年,月,日,时,分,秒 # print("\t压缩尺寸:", info.compress_size) # 压缩包内的 文件的压缩后大小 # print("\t文件尺寸:", info.file_size) # 压缩包内的 文件的原文件大小 # rarMembersInfoDict = rarFile.NameToInfo # 返回一个 文件-文件info对象 的字典 # { # 压缩包内带目录的文件名:文件的RarInfo对象 # } |
import shutil
shutil提供了创建和读取压缩和存档文件的方法
内部实现主要依靠的是zipfile和tarfile模块
1.获取支持的压缩文件格式
shutil.get_archive_formats()
支持:tar、zip、gztar、bztar、xztar(v3支持)
2.生成压缩文件
shutil.make_archive(base_name, format, root_dir, …)
参数:
base_name:生成的压缩文件的文件名,不允许有扩展名。根据压缩格式生成相应的扩展名
format:压缩格式
root_dir:要压缩的文件夹
3.获取支持的解压文件格式(v3)
shutil.get_unpack_formats()
支持:tar、zip、gztar、bztar、xztar
4.解压操作(v3)
shutil.unpack_archive(filename, extract_dir=None, format=None):
参数:
filename:已存在的压缩文件路径
extract_dir:解压到的文件夹路径。文件夹可以不存在,会自动生成
format:解压格式。默认None,会根据扩展名自动选择
-end
声明
本文由崔维友 威格灵 cuiweiyou vigiles cuiweiyou 原创,转载请注明出处:http://www.gaohaiyan.com/2723.html
承接App定制、企业web站点、办公系统软件 设计开发,外包项目,毕设