zipfile:一点细节问题

最近处理的数据量有点大,因为需要压缩的操作。平时都是使用shell命令,今天想试试zipfile,果不其然,我又掉坑里了-_-|||
一、zipfile实现压缩文件
老规矩先亮结果

date = '20200319'
with zipfile.ZipFile("根目录/"+date+".zip", 'w', zipfile.ZIP_DEFLATED) as f:
            f.write("根目录/"+date+".txt",date+".txt")

它的原型是这个

with zipfile.ZipFile(target[, mode[,compress_type]] ) as f:
            f.write(filename[,arcname])

简单版

with zipfile.ZipFile(压缩包名[, mode[,compress_type]] ) as f:
            f.write(想压缩的文件名[,文件在压缩包内的文件])

zipfile中的ZipFile类包括但不限于以下参数:
target:你想要打开的压缩包名。因为我的mode选择的是w,所以会新建/覆盖压缩包。无论你是读还是写,都需要先打开一个压缩包。
mode:操作文件的模式。常见的w,r都可以。
compress_type:压缩的模式。
ZIP_DEFLATED:表示压缩,
ZIP_STORE:表示只打包,不压缩。(这个Linux中的gz跟tar格式有点类似)

ZipFile中的write()方法也有以下参数:
filename:你想对其进行压缩的的文件名。
arcname:压缩后的文件在压缩包内的名字
值得一提的是,如果你只传入filename参数,那在压缩包内是包含根目录的路径的,即数个层层嵌套的文件夹(老千层饼了)
如果加上arcname,包内就只有一个文件,非常干净利落。
还有,wirite中也有一个compress_type参数,但是上面俩个中只需要设置一个就好了

二、zipfile实现解压文件
还没用到,下次再说嘻嘻

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值