【python】批量压缩文件夹

下载

百度云 提取码:cyyy
链接:https://pan.baidu.com/s/1-RNZoS9hUvNodQZhF26hXA?pwd=cyyy
提取码:cyyy

场景

昨天是北湖的活动,他们拍了很多照片,今天我要把一大堆图片分类,放到不同文件夹里,然后每个文件夹都弄成一个压缩包,发给对应的人。

当你想把一系列文件夹,分别压缩为一个压缩包,这个时候就需要一个文件夹一个文件夹手动压缩。

目前市面上能做到批量压缩的只有winrar,但是这个软件比较麻烦,有流氓嫌疑,所以我干脆就直接写了一个批量压缩。

在这里插入图片描述

使用

吧程序复制到目标目录下,双击运行即可。

简单粗暴,把文件夹下所有东西都压缩一遍。

在这里插入图片描述

思路+代码

make_zip函数可以将文件/文件夹进行压缩,其中文件和文件夹逻辑略有不同,用os.path.isdir进行区分。

在主函数中,先获取当前路径以及路径下所有文件/文件夹,之后遍历压缩。

import zipfile
import os

# 批量压缩文件夹/文件
def make_zip(root,zip_name):
    # 是文件夹
    if os.path.isdir(root):
        zip=zipfile.ZipFile(zip_name,'w',zipfile.ZIP_DEFLATED)
        for abs_path,dirnames,filenames in os.walk(root):
            rel_path=abs_path.replace(root,'') # 去掉根路径,成为zip内路径
            for filename in filenames:
                zip.write(os.path.join(abs_path,filename),os.path.join(rel_path,filename))
        zip.close()
    # 是文件
    else:
        with zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED) as zip:
            # 获取文件名
            filename=os.path.split(root)[-1]
            zip.write(root,filename)


if __name__=='__main__':
    # 打包运行目录下所有文件夹
    root=os.getcwd()
    dirs=os.listdir()
    for dir in dirs:
        print('正在打包:',dir)
        make_zip(os.path.join(root,dir),dir+'.zip')
    print('所有文件夹打包完成,按Enter退出')
    input() # 阻塞


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亦梦亦醒乐逍遥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值