首页 > 编程语言 >MJ批量解压程序

MJ批量解压程序

时间:2024-02-01 11:33:41浏览次数:29  
标签:解压 suffix 批量 MJ without path folder os name

import os
import zipfile
import re
import shutil

def extract_zip_in_folder(folder_path):
    # 检查路径是否存在
    if not os.path.exists(folder_path):
        print("路径不存在,请重新输入")
        return

    # 存储已处理过的压缩包名称(无后缀编码)和带后缀编码的文件夹路径
    processed_names = {}
    folders_with_suffix = []

    # 遍历目录下的所有文件
    for item in os.listdir(folder_path):
        # 构建完整的文件路径
        file_path = os.path.join(folder_path, item)

        # 检查是否为zip文件
        if zipfile.is_zipfile(file_path):
            # 移除文件名中的后缀编码和括号
            name_without_suffix = re.sub(r'(\s*[\(\(][^)]*[\)\)])', '', item)
            name_without_suffix = os.path.splitext(name_without_suffix)[0]

            # 创建对应的文件夹(如果尚未创建)
            extract_folder = os.path.join(folder_path, name_without_suffix)
            if name_without_suffix not in processed_names:
                os.makedirs(extract_folder, exist_ok=True)
                processed_names[name_without_suffix] = extract_folder

            # 解压zip文件到对应文件夹
            with zipfile.ZipFile(file_path, 'r') as zip_ref:
                zip_ref.extractall(processed_names[name_without_suffix])
                print(f"已解压: {item} 到 {name_without_suffix}")

            # 如果原始文件名包含后缀编码,记录其文件夹路径
            if re.search(r'[\(\(][^)]*[\)\)]', item):
                folders_with_suffix.append(os.path.splitext(file_path)[0])

    # 删除所有带后缀编码的文件夹
    for folder in folders_with_suffix:
        if os.path.exists(folder):
            shutil.rmtree(folder)
            print(f"已删除文件夹: {folder}")

# 用户输入路径
user_input = input("请输入目录路径: ")
extract_zip_in_folder(user_input)

 

标签:解压,suffix,批量,MJ,without,path,folder,os,name
From: https://www.cnblogs.com/zly324/p/18000849

相关文章

  • (打标批量重命名)表格第一列是文件夹名,第二列是文件夹内的图片名
    importosimportopenpyxlfromopenpyxl.utils.exceptionsimportInvalidFileExceptiondefrename_images(base_dir,excel_path):#检查基础路径是否存在ifnotos.path.exists(base_dir):print(f"错误:提供的总地址不存在-{base_dir}")retu......
  • scrapy 响应文本乱码(不支持Brotli解压)
    一.介绍在scrapy中,默认不支持Brotli解压,当发现响应乱码时,如何分析确定是由Brotli压缩引起的呢?1)是看请求头是否有'Accept-Encoding':"gzip,deflate,br"中的br,如果去掉br再请求网页,如果响应不成功,则表示服务端只支持br压缩格式,如果成功则看是否乱码。2)......
  • (MJ出图转大模型)删除二级文件夹
    importosimportshutildefdelete_subfolders(directory):#检查目录是否存在ifnotos.path.exists(directory):print("指定的目录不存在:",directory)return#遍历目录中的所有项foriteminos.listdir(directory):item......
  • Windows 批量创建.lnk快捷方式(不是软连接、硬链接)
    前言全局说明Windows批量创建.lnk快捷方式(不是软连接、硬链接)快捷方式、软连接、硬链接,介绍:https://www.cnblogs.com/wutou/p/17996851一、介绍在使用Anydesk时发现,可以使用快捷方式指定ID,接收参数,来远程连接某台机器,而不用打开界面,再输入ID来远程机器,很方便。但因......
  • 批量检测微信小程序是否封禁
    `<?php//要检测的appid列表$appids=array('appid1','appid2','appid3');//使用实际的appid//循环调用接口检测小程序状态foreach($appidsas$appid){//构造接口URL,将appid作为参数传递$url='https://yan.changxunwangluo.cn/xcx/check_mini_pro......
  • excel批量转换为CSV格式
    在左侧工程资源管理器中双击Sheet1(Sheet1)打开代码窗口。工程资源管理器如果没有显示,则按ctrl+R就可以显示 代码窗口中输入下面代码,其中有两行需要自己修改为实际文件来源路径和保存路径。就是开头说到的那两个文件夹位置。SubSaveToCSVs()DimfDirAsStringDim......
  • 老司机批量巧删扫描出来的有害程序--一条指令彻底删除扫描出来的有害程序
    作者:田逸(formyz)一个NFS服务器,为多个Web项目所共享。这些目录包括PHP程序、图片、HTML页面和用户上传的文档和附件等。因为某些Web框架古老,存在诸如不对上传文件做严格的安全性检查,虽然此NFS服务器位于受保护的内部网络,但任然被别有用心的人上传了大量的恶意文件。强烈要求程序员进......
  • 线程分批处理数据及MyBatis的批量插入
    文章目录一、背景二、代码实现:三、分页查询下游批次处理场景四、MyBatis的批量插入1、活动表简单表结构:2、业务层组装数据:一、背景数据量较多时,我们常常遇到需要分批处理的情况,比如上千上万数据需要需要操作数据库时(入库或者更新),我们想到分批处理,或者解析文件数据量较多,我......
  • 闪测影像|智能影像测量仪高精度快速批量检测
    在现代工业制造领域,快速批量测量零部件尺寸能确保产品质量、提升生产效率、优化生产过程、降低成本以及增强市场竞争力等。通过快速批量测量,迅速检测出不合格的零部件,避免生产过程中的浪费和延误,优化生产过程并提高生产效率。如在自动化生产线上,快速批量测量能够实时监测零部件尺......
  • net8 对接webapi接口通过 GetFromJsonAsAsyncEnumerable方法直接得到对象,无需进行反序
    调用API直接获取到对象现在有一个接口返回如下图中的数据:如果是在8以前的版本中获取该接口的数据,需要先获取到接口内容,然后进行反序列化,代码如下conststringRequestUri="http://localhost:5145/user";usingvarclient=newHttpClient();varstream=awaitclient......