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

请求编写跨Mac/Windows脚本:复制指定文件并重命名且压缩子文件夹

跨平台解决方案:Python脚本实现需求

先确认你的初始目录结构是这样的:

├── robot
│   ├── round
│   │   ├── asset-20@2x.png
│   │   ├── asset-30@2x.png
│   │   ├── asset-64@2x.png
│   │   └── asset-128@2x.png
│   └── square
│       ├── asset-20@2x.png
│       ├── asset-30@2x.png
│       ├── asset-64@2x.png
│       └── asset-128@2x.png
├── plane
│   ├── round
│   │   ├── asset-20@2x.png
│   │   ├── asset-30@2x.png
│   │   ├── asset-64@2x.png
│   │   └── asset-128@2x.png
│   └── square
│       ├── asset-20@2x.png
│       ├── asset-30@2x.png
│       ├── asset-64@2x.png
│       └── asset-128@2x.png

下面这个Python脚本可以直接在Mac和Windows上运行,不需要额外依赖(Python 3.6+即可):

import os
import shutil

# 定义要处理的主文件夹列表
main_folders = ["robot", "plane"]

for folder in main_folders:
    # 1. 复制并重命名图片
    src_img_path = os.path.join(folder, "round", "asset-128@2x.png")
    dest_img_path = os.path.join(folder, f"{folder}.png")
    
    if os.path.exists(src_img_path):
        shutil.copy2(src_img_path, dest_img_path)
        print(f"已成功复制图片到 {dest_img_path}")
    else:
        print(f"警告:未找到 {src_img_path},跳过图片复制")
    
    # 2. 压缩round和square文件夹
    zip_dest_path = os.path.join(folder, f"{folder}.zip")
    # 先临时创建一个文件夹,把round和square放进去再压缩(避免zip里带多余层级)
    temp_dir = os.path.join(folder, "_temp_zip")
    os.makedirs(temp_dir, exist_ok=True)
    
    # 复制round和square到临时目录
    for sub_folder in ["round", "square"]:
        src_sub_path = os.path.join(folder, sub_folder)
        dest_sub_path = os.path.join(temp_dir, sub_folder)
        if os.path.exists(src_sub_path):
            shutil.copytree(src_sub_path, dest_sub_path)
            print(f"已准备压缩 {sub_folder} 文件夹")
        else:
            print(f"警告:未找到 {src_sub_path},跳过该文件夹压缩")
    
    # 压缩临时目录里的内容,然后删除临时目录
    shutil.make_archive(zip_dest_path.replace(".zip", ""), "zip", temp_dir)
    shutil.rmtree(temp_dir)
    print(f"已成功生成压缩包 {zip_dest_path}")

print("所有操作完成!")

脚本说明

  • 跨平台兼容性:用Python内置的os和shutil模块,不需要依赖系统自带的压缩工具(比如Mac的zip命令或Windows的tar),确保两边都能稳定运行
  • 图片复制逻辑:精准定位每个主文件夹下round子目录里的asset-128@2x.png,复制到主文件夹根目录后自动重命名为<主文件夹名>.png
  • 文件夹压缩逻辑:先创建临时目录存放round和square,再压缩临时目录内容,这样生成的zip包打开后直接就是目标文件夹,不会出现多余的层级结构
  • 容错处理:如果某个文件/文件夹不存在,会打印警告信息但继续执行其他操作,避免因局部问题中断整个流程

使用方法

  1. 把这个脚本保存为process_assets.py,放在和robot、plane同一级的目录下
  2. 确保你的电脑安装了Python 3.6+(Mac一般自带,Windows可从官网安装)
  3. 打开终端(Mac)或命令提示符(Windows),切换到脚本所在目录,运行:
    python process_assets.py
    

运行完成后,你的目录结构就会变成预期的样子:

├── robot
│   ├── round
│   │   ├── asset-20@2x.png
│   │   ├── asset-30@2x.png
│   │   ├── asset-64@2x.png
│   │   └── asset-128@2x.png
│   ├── square
│   │   ├── asset-20@2x.png
│   │   ├── asset-30@2x.png
│   │   ├── asset-64@2x.png
│   │   └── asset-128@2x.png
│   ├── robot.png
│   └── robot.zip
├── plane
│   ├── round
│   │   ├── asset-20@2x.png
│   │   ├── asset-30@2x.png
│   │   ├── asset-64@2x.png
│   │   └── asset-128@2x.png
│   ├── square
│   │   ├── asset-20@2x.png
│   │   ├── asset-30@2x.png
│   │   ├── asset-64@2x.png
│   │   └── asset-128@2x.png
│   ├── plane.png
│   └── plane.zip

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:35:26