flutter icon 自动分类

312 阅读1分钟

flutter 图片资源有2.0x, 3.0x, 每次下载下来的时候都要自己一个拖到相应的目录里面,完了之后还要自己改名字.着实麻烦.

所以呢用python写了一个小工具自动解压 => 图片倍图自动分类 => 删除压缩包.

同时支持拖入icon文件夹

#!/usr/bin/python
# -*- coding: utf-8 -*-
# 解压icon包,自动转到.2x 3x文件夹中

import os
import zipfile
import shutil
import sys
reload(sys)
sys.setdefaultencoding("utf-8")

infile = raw_input("输入flutter资源目录:")


def un_zip(file_name):
    """unzip zip file"""
    zip_file = zipfile.ZipFile(file_name)
    imgs = []
    if os.path.isdir(file_name + "_files"):
        pass
    else:
        os.mkdir(file_name + "_files")
    for names in zip_file.namelist():
        zip_file.extract(names,file_name + "_files/")
        imgs.append(names)
    
    for imgName in imgs:
        move(file_name+"_files/", imgName)
    # 删除目录
    os.rmdir(file_name + "_files/")
    #删除压缩包
    os.remove(file_name)
    print('''
    ==========完成==========
    ''')
    zip_file.close()

def move(path, imgName):
    newpath = ""
    if "@2x.png" in imgName:
        # 重命名新路径
        newpath = infile + "/2.0x/" + imgName.replace("@2x", "")
    elif "@3x.png" in imgName:
        # 重命名新路径
        newpath = infile + "/3.0x/" + imgName.replace("@3x", "")
    else:
        newpath = infile + '/' + imgName
    #移动icon到目标路径
    shutil.move(path + imgName, newpath)
    
while(1):
    outpath = raw_input('icon压缩包或者解压过后的图片文件夹:')

    if os.path.isdir(outpath):
        for parent,dirnames,filenames in os.walk(outpath):
            for val in filenames:
                print(val)
                move(parent+"/", val)
    else:
        # 删除右边空格
        un_zip(outpath.rstrip())