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:' 以追加方式打开一个不进行压缩的股低昂文件,如果文件不存在则创建