批量修改svg中fill--工具

352 阅读1分钟
  • ui导出的svg如果很多,想一个个改颜色那就很麻烦了
  • 这里用python做个小工具
  • 可以使用命令pyinstaller --onefile test.py打包成exe文件
import os
import re
PATH = input('输入目标绝对路径:')
def handle(tarPath: str):
    arr = os.listdir(tarPath)
    for item in arr:
        tampTar = os.path.join(tarPath, item)
        # print(item, os.path.isdir(tampTar))
        if os.path.isdir(tampTar):
            # 如果是文件夹
            handle(tampTar)
        elif item.split('.')[1] == 'svg':
            # 如果是文件
            file = open(tampTar, 'r', encoding='utf-8')
            content = file.read()
            #black可以换成其他要修改的值
            new_svg_string = re.sub(r'(fill=")[^"]*', r'\1black', content)
            with open(tampTar, 'w', encoding='utf-8') as file:
                file.write(new_svg_string)  # 按行分割成数组形式
            print(f'{item}修改完成')
handle(PATH)
input('全部修改完成,按任意键退出...')