python对window对一个目录下的所有子目录批量压缩

一、需求:

这个还是我当时想把一个目录下的20多个子目录(也就是文件夹)进行压缩,但是又不能全部一起压缩(压缩很吃CPU和内存的,然后我就想着python是不是可以完成,一个一个自己压缩,然后就找到了zipfile这个模块),不多说了,直接上我封装好的函数,传需要压缩的目录即可,然后使用os模块,读取一个目录下的子目录,这样也不耽误我做其他事情了。

直接上代码,拿走即可使用

import zipfile
import os

def zip_yasuo(start_dir):
    file_news = start_dir + '.zip'
    if not os.path.isfile(file_news):
        z = zipfile.ZipFile(file_news, 'w', zipfile.ZIP_DEFLATED)
        for dir_path, dir_names, file_names in os.walk(start_dir):
            file_path = dir_path.replace(start_dir, '')
            file_path = file_path and file_path + os.sep or ''
            for filename in file_names:
                z.write(os.path.join(dir_path, filename), file_path+filename)
        z.close()

if __name__ == "__main__"
    base_path = r"主目录"
    base_path_list = os.listdir(base_path)
    for base_path_list_one in base_path_list:
        base_path_list_one_dir = os.path.join(base_path,base_path_list_one)
        # 子目录
        print("准备压缩需要压缩的子目录", base_path_list_one_dir)
        if os.path.isdir(base_path_list_one_dir):
            zip_yasuo(base_path_list_one_dir)
            

执行即可等待压缩即可。可以不用盯着,一个文件压缩好再压缩另一个,如果就一俩个目录,没必要这么麻烦了,多的话可以,主要是省事,压缩速度还不错。

觉得不错,给我点个赞哈
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42081389/article/details/105320752