You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

提取zip、查找.mod文件重命名文件夹并重打包的Python算法代码问询

Python实现ZIP包解压、重命名、重新打包方案

前置说明

  • 所有用到的库均为Python标准库,无需额外安装第三方依赖
  • 代码默认逻辑:如果压缩包内存在多个.mod文件,取排序后的第一个;如果没有.mod文件会抛出异常终止流程,可根据需要调整异常分支逻辑
  • 重命名逻辑默认取.mod文件的不带后缀的文件名作为新文件夹名,如果需要保留.mod后缀可以自行修改对应代码行

完整实现代码

import os
import zipfile
import shutil

# -------------------------- 配置参数,运行前修改 --------------------------
source_zip_path = "./your_downloaded_file.zip"  # 替换为你下载的zip压缩包实际路径
temp_extract_dir = "./some_name"  # 临时解压目录名,无需修改
# ------------------------------------------------------------------------

# 1. 解压zip包到指定临时文件夹
os.makedirs(temp_extract_dir, exist_ok=True)
with zipfile.ZipFile(source_zip_path, 'r') as zip_ref:
    zip_ref.extractall(temp_extract_dir)

# 2. 查找解压目录下的.mod文件
mod_files = [f for f in os.listdir(temp_extract_dir) if f.lower().endswith('.mod')]
if not mod_files:
    raise FileNotFoundError("解压目录下未找到扩展名为.mod的文件")

mod_filename = mod_files[0]
# 去掉.mod后缀作为新文件夹名,需要保留后缀的话直接改为 new_dir_name = mod_filename
new_dir_name = os.path.splitext(mod_filename)[0]
new_dir_path = os.path.join(os.path.dirname(temp_extract_dir), new_dir_name)

# 3. 重命名临时文件夹
if os.path.exists(new_dir_path):
    # 目标文件夹已存在时默认删除,不需要删除可以改为抛出异常终止流程
    shutil.rmtree(new_dir_path)
os.rename(temp_extract_dir, new_dir_path)

# 4. 将重命名后的文件夹重新打包为zip
output_zip_path = f"{new_dir_name}.zip"
with zipfile.ZipFile(output_zip_path, 'w', zipfile.ZIP_DEFLATED) as zip_ref:
    # 遍历文件夹保持目录结构,避免打包时带上外层绝对路径
    for root, dirs, files in os.walk(new_dir_path):
        for file in files:
            file_path = os.path.join(root, file)
            arcname = os.path.relpath(file_path, os.path.dirname(new_dir_path))
            zip_ref.write(file_path, arcname=arcname)

print(f"处理完成,最终压缩包已保存至:{output_zip_path}")

可选调整说明

  • 如果需要匹配子目录内的.mod文件,将第二步查找.mod文件的逻辑替换为递归遍历即可
  • 如果需要保留原始压缩包的压缩参数,可以调整ZIP_DEFLATED为对应压缩格式
  • 如果不需要保留处理后的中间文件夹,可以在打包完成后添加shutil.rmtree(new_dir_path)删除临时目录

内容的提问来源于stack exchange,提问作者Razilator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 06:06:04