【Python】 文件归档压缩 tarfile及 zipfile

tarfile


 打包

# 打包路径及文件名称; 如果只打包不压缩 将"w:gz"改为"w:"或"w"
tar = tarfile.open(save_path, mode="w")
# 向tar包添加文件
tar.add(add_filepath, arcname=filename)    
# 关闭
tar.close()

 

 解压

# 需要解压的文件 只读
tar=tarfile.open(filepath,"r")
# 解压
tar.extractall()
# 关闭
tar.close()

 

 

 

 

 

zipfile


 压缩

# 当前文件夹下的文件名
with zipfile.ZipFile("./123.zip", 'w') as z:
    # 需要压缩的文件
    z.write("./xxx_a.py")
    z.write("./xxx_b.py")

 

解压

# 解压文件
with zipfile.ZipFile("123.zip", "r") as z:
    print("查看压缩包中的文件:", z.namelist())
    # z.extract("xxx_a.py") # 仅解压 xxx_a.py
    # z.extractall()  # 解压全部文件
    z.extractall("./123") # 解压文件到当前目录123文件夹下

 

 

 

 

拓展


 tarfile mode行为

mode        行为
'r:'        以读模式打开一个未压缩的归档文件(通常后缀为*.tar)
'r:gz'       以读模式打开一个通过gzip方式进行压缩的归档文件(通常后缀为*.tar.gz)
'r:bz2'      以读模式打开一个通过bzip2方式进行压缩的归档文件(通常后缀为*.tar.bz2)
'r:xz'       以读模式打开一个通过lzma方式进行压缩的归档文件(通常后缀为*.tar.xz)
'r' 或 'r:*'   以读模式打开归档文件,可以打开以上任意方式压缩的归档文件,且会自动判断应该使用的压缩方式。推荐使用这个mode。
'w'或'w:'      以写模式打开一个不进行压缩的归档文件
'w:gz'       以写模式打开一个以gzip方式进行压缩的归档文件
'w:bz2'      以写模式打开一个以bzip2方式进行压缩的归档文件
'w:xz'       以写模式打开一个以lzma方式进行压缩的归档文件
'x'或'x:'      同'w'或'w:',但是如果归档文件已经存在会引发FileExistsError
'x:gz'       同'w:gz',但是如果归档文件已经存在会引发FileExistsError
'x:bz2'      同'w:bz2'',但是如果归档文件已经存在会引发FileExistsError
'x:xz'       同'w:xz',但是如果归档文件已经存在会引发FileExistsError
'a'或'a:'     以追加方式打开一个不进行压缩的股低昂文件,如果文件不存在则创建

 

上一篇:Java排序方法及效率测试


下一篇:Acwing Arithmetic Learning:数据结构(3)