首页 > 其他分享 >记录一个批量压缩文件夹的方法

记录一个批量压缩文件夹的方法

时间:2024-05-22 22:30:55浏览次数:23  
标签:批量 zip 压缩 zipfile filename 文件夹 file path os

import os
import zipfile
from tkinter import filedialog


class ZipDir:
    """
    ZipFile() 用于创建1个 zip 文件对象,示例中的三个参数分别表示:
    filename:压缩成的zip包的路径(含压缩包名称);例如:xxx.zip
    mode:可选 r,w,a ,代表不同的打开文件的方式;r只读;w重写;a添加
    compression:指出这个 zipfile 的压缩方法,默认是 ZIP_STORED ,另一种是 ZIP_DEFLATED
    ZipFile.write() 用于将指定文件添加到zip文档中,示例中的两个参数分别表示:
    filename:需要压缩的文件名
    arcname:添加到zip文档之后保存的名称
    https://cloud.tencent.com/developer/article/2131150
    """
    input_path = filedialog.askdirectory(title='批量压缩文件夹,请选择文件夹存放路径')

    @staticmethod
    def zip_file(dirpath, outFULLName):
        z = zipfile.ZipFile(outFULLName, 'a', zipfile.ZIP_DEFLATED)
        for path, dirnames, filenames in os.walk(dirpath):
            fpath = path.replace(dirpath, "")
            for filename in filenames:
                # 源文件 压缩后文件名(带\则可保存在压缩包路径) 原本在目录下第几层就压缩在第几层
                z.write(os.path.join(path, filename), os.path.join(fpath, filename), compress_type=zipfile.ZIP_DEFLATED)

    def excute(self):
        files = os.listdir(self.input_path)
        for file in files:
            file_path = os.path.join(self.input_path, file)
            out_path = os.path.join(self.input_path, f'{file}.zip')
            ZipDir.zip_file(file_path, out_path)


ZipDir().excute()

标签:批量,zip,压缩,zipfile,filename,文件夹,file,path,os
From: https://www.cnblogs.com/AZ26/p/18207268

相关文章

  • 记录一个批量拆分数据粘贴到各个表里的小脚本
    importosimporttkinterastkimporttkinter.filedialogfromtkinterimportttkimporttkinter.messageboxfromtkinterimportscrolledtextimportxlwingsasxwfrompandasimportExcelFilefrompandasimportread_excelglobaldf_total,cbox_sheet_ori,cbo......
  • 文件夹加密如何实现?如何保证加密后文件不会被他人查看?
    文件夹加密技术:确保数据安全的关键步骤在我们的数字生活中,个人和企业的敏感信息经常需要通过电子方式存储和传输。为了防止这些信息落入错误的手中,文件夹加密成为了一种重要的数据保护手段。文件夹加密不仅可以防止未授权访问,还能在信息传播过程中保障数据的完整性和机密性。但如......
  • LLM-文心一言:FOR、RBM、FST压缩算法
    FOR、RBM(RoaringBitmap)和FST(FiniteStateTransducer)是三种不同的压缩算法,它们各自具有不同的特点和用途。FOR压缩算法:FOR(FrameOfReference)压缩算法主要用于处理整数序列的压缩。它通过计算序列中相邻元素的差值(增量),并将这些差值存储起来,而不是直接存储原始整数。这样可以显......
  • 9-3-了解gzip-bzip2- xz管理压缩文件
    9.3了解gzip-bzip2-xz管理压缩文件-file-sort查看文件创建压缩的TAR存档,TAR命令支持三种不同的压缩方式:gzip压缩速度最快bzip2压缩生成的文件比gzip小,但使用不如gzip广;xz压缩工具相对较新,但是会提供最佳的压缩率9.3.1压缩工具......
  • tar命令——压缩与解压
    介绍tar全称是tapearchive,初衷是将多个文件写入磁带。首先,需要分清两个概念——打包与压缩。打包:将多个文件汇总成一个文件。压缩:将一个大文件通过压缩算法变成一个小文件。而tar命令执行的打包流程,真正执行压缩的是使用的压缩算法,比如gzip、bzip2、xz。tar命令在Linux社区内十......
  • 解决方案 | vb记住上次打开的文件夹
     PrivateSubButton_ImportBasicData_Click(senderAsObject,eAsEventArgs)HandlesButton_ImportBasicData.Click'创建文件对话框对象DimopenFileDialogAsNewOpenFileDialog()'配置文件对话框openFileDialog.Title="请选择一个Excel......
  • 创建事务批量删除DataGridView数据(含关联表中的数据)
    新建一个CommandInfo.cs类usingSystem;usingSystem.Collections.Generic;usingSystem.Data.Common;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceWinStuSystem{publicclassCommandInfo{publicstringCommand......
  • windows cmd拉取linux文件夹下的文件,并解压
    前言:nginx静态文件从linux文件夹下拉取,然后放到windows下,并且解压 需要安装putty,用pscp命令del-pull.bat文件,负责删除本地文件夹下所有文件,并且拉取数据@echooffsetlocalsetFOLDER_PATH=C:\Users\admin\Desktop\yaya_nginx\web\echoDeletingfilesinfolder...rm......
  • WebP图像格式的原理 与图像压缩的关系
    目录WebP简介原理为什么对预测数据做残差就可以提高压缩率呢?为什么使用算术编码压缩率高于哈夫曼编码?WebP简介\(\quad\)目前在互联网上,图片流量仍占据较大的一部分。因此,在保证图片质量不变的情况下,节省流量带宽是大家一直需要去解决的问题。传统的图片格式,如JPEG,PNG,GIF等格式......
  • 【博客园发文技巧】不离开编辑页面,批量添加图片链接和设置图片大小
    参考文档:https://www.cnblogs.com/sanshi/p/3794796.html起因在博客园写文章,有时需要上传好多大图片,如果这些图片过大,则会导致页面变形。因此有一个实际的需求,能够在博客园的编辑页面,直接批量修改所有图片的大小,然后给这些图片添加链接,以便点击时转到大图。简单实现在博客园......