当前位置:首页 > 数码 > 紧缩Zipfile与解紧缩Tarfile模块-经常使用Python高效治理存档文件 (紧缩手术怎么做多少钱)

紧缩Zipfile与解紧缩Tarfile模块-经常使用Python高效治理存档文件 (紧缩手术怎么做多少钱)

admin4个月前 (05-11)数码19

/target=_blankclass=infotextkey>Python提供了两个规范库模块来处置文件的紧缩和解紧缩操作:zipfile用于处置ZIP格局的文件紧缩,tarfile用于处置Tar格局的文件紧缩。

本文将分享这两个模块的经常使用方法,包含装置、紧缩文件的创立、紧缩文件的读取、解紧缩和示例代码。

装置

Python的zipfile和tarfile模块是规范库的一局部,因此不须要额外装置。可以间接在Python程序中导入它们。

importzipfileimporttarfile

经常使用zipfile模块紧缩文件

创立紧缩文件

经常使用zipfile模块可以轻松地创立ZIP紧缩文件。

以下是一个示例,展示如何创立一个ZIP紧缩文件并将文件减少到其中:

importzipfile#创立一个ZIP紧缩文件withzipfile.ZipFile('example.zip','w')aszipf:#减少文件到紧缩文件zipf.write('file.txt','file.txt')

读取紧缩文件

要读取ZIP紧缩文件并失掉其中的文件列表,可以经常使用zipfile.ZipFile的namelist()方法:

importzipfilewithzipfile.ZipFile('example.zip','r')aszipf:file_list=zipf.namelist()print("ZIP紧缩文件中的文件列表:",file_list)

经常使用tarfile模块紧缩文件

创立紧缩文件

经常使用tarfile模块可以创立Tar紧缩文件。

以下是一个示例,展示如何创立一个Tar紧缩文件并将文件减少到其中:

importtarfile#创立一个Tar紧缩文件withtarfile.open('example.tar.gz','w:gz')astarf:#减少文件到紧缩文件tarf.add('file.txt',)

读取紧缩文件

要读取Tar紧缩文件并失掉其中的文件列表,可以经常使用tarfile.TarFile的getnames()方法:

importtarfilewithtarfile.open('example.tar.gz','r:gz')astarf:file_list=tarf.getnames()print("Tar紧缩文件中的文件列表:",file_list)

解紧缩文件

要解紧缩ZIP或Tar紧缩文件中的文件,可以经常使用相应的模块提供的解紧缩方法。

以下是一个示例,展示如何解紧缩文件:

解紧缩ZIP文件

importzipfilewithzipfile.ZipFile('example.zip','r')aszipf:zipf.extractall('extracted_files')#将文件解紧缩到指定目录

解紧缩Tar文件

importtarfilewithtarfile.open('example.tar.gz','r:gz')astarf:tarf.extractall('extracted_files')#将文件解紧缩到指定目录

示例代码

以下是一些示例代码,展示了如何经常使用zipfile和tarfile模块口头经常出现义务:

importzipfileimporttarfile#经常使用zipfile模块创立ZIP紧缩文件withzipfile.ZipFile('example.zip','w')aszipf:zipf.write('file.txt','file.txt')#经常使用zipfile模块读取ZIP紧缩文件withzipfile.ZipFile('example.zip','r')aszipf:file_list=zipf.namelist()print("ZIP紧缩文件中的文件列表:",file_list)#经常使用tarfile模块创立Tar紧缩文件withtarfile.open('example.tar.gz','w:gz')astarf:tarf.add('file.txt',)#经常使用tarfile模块读取Tar紧缩文件withtarfile.open('example.tar.gz','r:gz')astarf:file_list=tarf.getnames()print("Tar紧缩文件中的文件列表:",file_list)#解压ZIP文件withzipfile.ZipFile('example.zip','r')aszipf:zipf.extractall('extracted_files')#解压Tar文件withtarfile.open('example.tar.gz','r:gz')astarf:tarf.extractall('extracted_files')

总结

Python的zipfile和tarfile模块是处置文件的紧缩和解紧缩操作的关键工具。区分用于ZIP和Tar格局的文件,提供了便捷而有效的方法来创立、读取和解紧缩文件。在本文中,分享了如何创立紧缩文件并减少文件到中,以及如何读取紧缩文件中的文件列表。同时,还展示了如何解紧缩ZIP和Tar紧缩文件中的文件到指定目录。

这两个模块关于处置文件操作十分有用,可以在许多场景中协助您有效地治理文件和数据。无论是备份文件、打包文件,还是解紧缩已紧缩的数据,zipfile和tarfile模块都提供了便捷而灵敏的处置打算。


使用zipfile库操作zip格式压缩包

其他内容,设置密码setpassword,但发现设置密码后是不起作用的,没有做深入研究 还可以进行二进制读写,大家有兴趣可自己研究下 此外使用winrar生成的加密的zip包用zipfile是无法解密的会提示,会报错:That compression method is not supported 网上有一种说是用python破解加密文件6位密码的,亲测,python3.8是不可用的

Python打开zip文件

紧缩手术怎么做多少钱

Zip文件格式是通用的文档压缩标准。 自1.6版本起,Python中zipfile模块能够直接处理zip文件里的数据,例如需要将对应目录或多个文件打包或压缩成zip格式,或者需要查看一个zip格式的归档文件中部分或者所有文件同时避免讲这些文件展开到磁盘上。 使用ZipFile类来操作zip文件。 创建一个ZipFile对象,表示一个zip文件。 参数file:文件的路径或者类似文件对象参数mode:读r,写入w,添加a参数compression: ZIP_STORED(无压缩),ZIP_DEFLATED(压缩,需要zlib支持)参数allowZip64:默认情况下报错,将其设为True,ZipFile将用ZIP64扩展进行创建文件。 下面示例展示了读取一个zip文档,将文档里所有文件解压到名为work的文件里。 import zipfile if __name__ == __main__: zFile = (F:\\,r) #():获取ZIP文档内所有文件的名称列表 for fileM in (): (fileM,F:\\work) () read(self,name,pwd=None)获取ZIP文档内文件的二进制数据 下面例子展示了使用read方法获取ZIP文档中文件的数据,并写到文件中 import zipfile if __name__ == __main__: zipFile = (F:\\,r) highlight=true>文件写入压缩文档里面。 import zipfile if __name__ == __main__: zipFile = (F:\\,w) (F:\\,,_DEFLATED) ()getinfo(name)返回一个ZipInfo类的对象。 import zipfile if __name__ == __main__: zipInfo = () print(filename:,) print(date_time:,_time) 常用函数 关闭归档文件,你必须在退出程序之前调用close()否则将不会写入关键记录数据。 返回一个ZipInfo对象,其中包含有关归档成员name的信息。 针对一个目前并不包含于归档中的名称调用getinfo()将会引发KeyError。 返回一个列表,其中包含每个归档成员的ZipInfo对象。 如果是打开一个现有归档则这些对象的排列顺序与他们对于条目在磁盘上的实际ZIP文件中的顺序一致。 返回按名称排列的归档成员列表。 以二进制文件类对象的形式访一个归档成员。 name可以是归档内某个文件的名称也可以是某个ZipInfo对象。 如果包含了mode形参,则它必须为r(默认值)或w。 pwd为用于解密已加密Zip文件的密码。 open()也是一个上下文 管理器,因此支持with语句: with ZipFile() as myzip: with () as myfile: print(()) 如果mode为“r”则文件类对象(ZipExtFile)将只读并且提供下列方法:read(),readline(),readlines(),seek(),tell(),__iter__(),__next__()。 这些对象可独立于ZipFile进行操作。 如果mode=w则返回一个可写入的文件句柄,它将支持write()方法。 当一个可写入的文件句柄被打开时,尝试读写ZIP文件中的其他文件将会引发ValueError。 当写入一个文件时,如果文件大小不能预先确定但是可能超过2GiB,可传入force_zip64=True以确保标头格式能够支持超大文件。 如果文件大小可以预先确定,则在构造ZipInfo对象时应设置file_size,并将其作name形参。 从归档中提取一个成员放入当前工作目录;member必须为成员的完整名称或ZipInfo对象。 成员的文件信息会尽可能精确地被提取。 path指定一个要提取到的不同目录。 member可以是一个文件名或ZipInfo对象。 pwd是用于解密文件的密码。 返回所创建的经正规化的路径(对应于目录或新文件)。 从归档中提取出所有成员放入当前工作目录。 path指定一个要提取到的不同的目录。 members为可选项且必须为namelist()所返回列表的一个子集。 pwd是用于解密文件的密码。 警告:绝不要未经预先检验就从不可靠的源中提取归档文件。 这样有可能在 path 之外创建文件,例如某些成员具有以/开始的文件名或带有两个点号..的文件名。 此模块会尝试防止这种情况。 参见 extract() 的注释。 将归档是目录表打印到. 设置pwd为用于提取已加密文件的默认密码。 返回归档中文件name的字节数据。 name是归档中文件的名称,或是一个ZipInfo对象。 归档必须以读取或追加方式打开。 pwd为用于已加密文件的密码,并且如果指定该参数则它将覆盖通过setpassword()设置的默认密码。 on a ZipFile that uses a compression method 在使用 ZIP_STORED , ZIP_DEFLATED , ZIP_BZIP2 或 ZIP_LZMA 以外的压缩方法的 ZipFile 上调用 read() 将引发 NotImplementedError 。 如果相应的压缩模块不可用也会引发错误。 读取归档中的所有文件并检查他们的CRC和文件头。 返回第一个已损坏文件的名称,在其他情况下则返回None。 将名为filename的文件写入归档,给予的归档名为arcname(默认情况下将与filename一致,但是不带驱动器盘符并会移除开头的路径分隔符)。 compress_type如果给出,它将覆盖作为构造器compression形参对于新条目所给出的值。 类似地,compresslevel如果给出也将覆盖构造器。 归档必须使用w,x“或a模式打开。 将一个文件写入归档。 内容为 data ,它可以是一个 str 或 bytes 的实例;如果是 str ,则会先使用 UTF-8 进行编码。 zinfo_or_arcname 可以是它在归档中将被给予的名称,或者是 ZipInfo 的实例。 如果它是一个实例,则至少必须给定文件名、日期和时间。 如果它是一个名称,则日期和时间会被设为当前日期和时间。 归档必须以w,x或a模式打开。 ZIP文件的名称

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Python

“紧缩Zipfile与解紧缩Tarfile模块-经常使用Python高效治理存档文件 (紧缩手术怎么做多少钱)” 的相关文章

Python中的LEGB规则 (python怎样打开)

Python中的LEGB规则 (python怎样打开)

Python 中的 LEGB 规则决定了变量和函数的作用域解析顺序。它代表了四个作用域层级: 局部作用域 闭包函数外的函数 全局作用域 内置作用域...

b-b-个入门建议!-Python-技术书籍推荐-附赠-11 (b+b+b等于什么)

b-b-个入门建议!-Python-技术书籍推荐-附赠-11 (b+b+b等于什么)

近年来,Python 持续火爆,越来越多的人开始入门学习 Python。RealPython 作为最受好评的 Python 学习网站,拥有超百万的浏览量,以下是 RealPython 的开发者给...

处置日常义务的终极工具!-Python-文件读写实战 (处置行为是什么意思)

处置日常义务的终极工具!-Python-文件读写实战 (处置行为是什么意思)

/target=_blankclass=infotextkey>Python文件的读写操作时,有很多须要思考的细节,这包含文件关上形式、读取和写入数据的方法、意外处置等。 在本文中,...

惰性求值和lambda表达式的强大组合-Python高级技巧 (惰性求值和逻辑短路)

惰性求值和lambda表达式的强大组合-Python高级技巧 (惰性求值和逻辑短路)

Lambda 表达式 在 Python 中,Lambda 表达式是一个匿名函数,它可以在需要函数对象的地方使用。Lambda 表达式的语法如下: lambda arguments: exp...

一份收藏者必备清单-100个精选Python库 (收藏者的心态)

一份收藏者必备清单-100个精选Python库 (收藏者的心态)

/target=_blankclass=infotextkey>Python为啥这么火,这么多人学,就是由于繁难好学,性能弱小,整个社区十分生动,资料很多。而且这言语触及了方方面面,比如智能...

掌握网络世界的无限可能-Python分布式爬虫助力搜索引擎打造 (掌握网络世界的好处)

掌握网络世界的无限可能-Python分布式爬虫助力搜索引擎打造 (掌握网络世界的好处)

主从模式 主从模式是一种简单的分布式爬虫架构,其中一台主机作为控制节点,负责管理所有运行爬虫的从机。 主节点负责向从机分配任务,并接收新生成的任务。从机只需要从主节点接收任务,并把新生...

轻松把握多线程和多进程-Python编程进阶 (多线是什么意思)

轻松把握多线程和多进程-Python编程进阶 (多线是什么意思)

1、简介 咱们将讨论如何应用/target=_blankclass=infotextkey>Python口头多线程和多进程义务。它们提供了在单个进程或多个进程之间口头并发操作的方法。并...

生成-UUID-操作-Python-齐全指南-格局和经常出现疑问 (生成uuid java)

生成-UUID-操作-Python-齐全指南-格局和经常出现疑问 (生成uuid java)

UUID(UniversallyUniqueIdentifier,通用惟一标识符)是一种全局惟一标识符生成形式,用于创立举世无双的标识符。/target=_blankclass=infotextk...