Python3压缩和解压文件案例总结
简介
在计算机科学领域,压缩和解压文件是非常常见的任务。Python3中提供了许多包用于实现该任务,比如gzip、zipfile、tarfile等等。本篇文章就是要总结一下Python3中的文件压缩和解压的相关技巧。
1. gzip包
gzip包通常用于压缩和解压单个文件。gizp的压缩速度较快,并且可以基于某个文件来创建压缩文件,即将原文件覆盖为压缩文件。
压缩文件
使用以下代码可以进行单个文件的压缩:
import gzip
def compress_file(infile):
with open(infile, 'rb') as f_in, gzip.open(infile + '.gz', 'wb') as f_out:
f_out.writelines(f_in)
其中,infile
表示待压缩的文件名,通过gzip.open
打开输出压缩文件,再通过循环write
将读入的原始数据写入压缩文件中。
解压文件
使用以下代码可以进行单个文件的解压:
import gzip
def decompress_file(infile, outfile):
with gzip.open(infile, 'rb') as f_in, open(outfile, 'wb') as f_out:
f_out.writelines(f_in)
其中,infile
表示待解压的压缩文件名,outfile
表示解压后生成的文件名。与压缩文件一样,通过gzip.open
打开输入文件,再通过循环write
将读入的原始数据写入输出文件中。
2. tarfile包
tarfile包通常用于打包许多文件成为一个压缩文件,也可以对整个目录进行打包。
打包文件
使用以下代码可以进行文件的打包:
import tarfile
def tar_files(filenames, arch_name):
with tarfile.open(arch_name, "w:gz") as tar:
for filename in filenames:
tar.add(filename)
其中,filenames
表示待打包文件名列表,arch_name
表示打包后压缩文件的名称。使用tarfile.open
打开输出文件,选用"w:gz"模式表示创建一个gzip类型的压缩文件,tar.add(filename)
表示添加要打包的文件到压缩文件中。
解包文件
使用以下代码可以进行文件的解包:
import tarfile
def untar_file(infile, output_path):
with tarfile.open(infile, "r:gz") as tar:
tar.extractall(path=output_path)
其中,infile
表示待解包压缩文件,output_path
表示解压后文件所在的目录。
总结
本文主要介绍了Python3中使用gzip和tarfile两个包进行文件的压缩和解压操作。通过示例代码,我们了解了如何操作单个文件,如何打包和解包多个文件,读者可以在实际的开发过程中选择更适合的方案来完成各自的任务。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3压缩和解压文件案例总结 - Python技术站