Python 压缩包

创建文件(夹)
import os
import shutil

# 创建文件夹
os.mkdir()    # 创建路径中最后一级目录,如果之前目录不存在会报错!!!
os.makedirs() # 创建多层目录,如果之前目录都不存在会自动创建;如果已存在会报错. exist_ok=False/True.


os.remove(path)      # 删除文件
os.removedirs(path)  # 删除空文件夹
os.rmdir(path)       # 删除空文件夹
shutil.rmtree(path)  # 递归删除文件夹,即:删除非空文件夹
zipfile

compress_level:
compress_type: 注意lzma和bzip2类,本地可能打不开

  • zipfile.ZIP_STORED : (不压缩)
  • zipfile.ZIP_DEFLATED: 常用的ZIP压缩方法的数字常数。需要 zlib模块。
  • zipfile.ZIP_BZIP2: BZIP2压缩
  • zipfile.ZIP_LZMA : LZMA压缩
打包
import zipfile, tarfile, rarfile, gzipfile

def zip_dir(source_path, target_path):
    zz = zipfile.ZipFile(target_path, "w", zipfile.ZIP_DEFLATED)
    for path, dirs, files in os.walk(source_path):  # 遍历文件夹下目录:去掉目标跟路径,只对目标文件夹下边的文件及文件夹进行压缩
        for filename in files:
            zz.write(os.path.join(path, filename), arcname=filename)
    zz.close()


def tar_dir(source_path, target_path):
    tt = tarfile.open(target_path, "w:bz2")
    for path, dirs, files in os.walk(source_path):
        for filename in files:
            tt.add(os.path.join(path, filename), arcname=filename)
    tt.close()


def rar_dir(source_path, target_path):
    rr = tarfile.open(target_path, "w")
    for path, dirs, files in os.walk(source_path):
        for filename in files:
            rr.add(os.path.join(path, filename), arcname=filename)
    rr.close()


# 针对单个文件:
def gzip_file():
	g = gzip.GzipFile('demo.gz', 'wb')
	g.write('hello world')
	g.close()
解压
z = zipfile.ZipFile('demo.zip', 'r')
z.extractall()   # 可指定解压路径
z.close()


g = gzip.GzipFile('demo.gz', 'rb')
print(g.read())

Question

  1. 打包压缩率太低?
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值