#!/usr/bin/python
# -*- coding: UTF-8 -*-
from cgitb import handler
from re import T
import tkinter  as tk
import tkinter.messagebox
import glob
import os
from shutil import copyfile 
import time,datetime
from typing import Text
import re  
import requests
import random
import json
from PIL import Image
#获取唯一标识
def getId():
    #36进制位数对应10进制数范围参考:
    #1位:0-35
    #2位:36-1295
    #3位:1296-46655
    #4位:46656-1679615
    #5位:1679616-60466175
    #6位:60466176-2176782335

    # 只要秒数大于60466175,就可以转换出6位的36进制数,这里从2015年1月1日开始计算,约70年后会变成7位
    d1=datetime.datetime(2015,1,1)
    d2=datetime.datetime.now()
    #获取秒数
    s=(d2-d1).days*24*60*60
    #获取微秒数
    ms=d2.microsecond
    #随机两位字符串
    id1=hex36(random.randint(36, 1295))
    #转换秒数
    id2=hex36(s)
    #转换微秒数,加46656是为了保证达到4位36进制数
    id3=hex36(ms+46656)
    mId=id1+id2+id3
    return mId[::-1]
#10进制转换36进制
def hex36(num):
    # 正常36进制字符应为'0123456789abcdefghijklmnopqrstuvwxyz',这里我打乱了顺序
    key='t5hrwop6ksq9mvfx8g3c4dzu01n72yeabijl'
    a = []
    while int(num) != 0:
        a.append(key[int(num)%36])
        num = int(num) / 36
    a.reverse()
    out = ''.join(a)
    return out
#转小写
def toLowerCase(str):
        """
        :type str: str
        :rtype: str
        """
        return "".join(chr(ord(c) + 32) if 65 <= ord(c) <= 90 else c for c in str)
#查找所有文件名字    
def findAllFilesWithSpecifiedSuffix(target_dir, target_suffix="go"):
    find_res = []
    target_suffix_dot = "." + target_suffix
    walk_generator = os.walk(target_dir)
    for root_path, dirs, files in walk_generator:
        if len(files) < 1:
            continue
        for file in files:
            file_name, suffix_name = os.path.splitext(file)
            if suffix_name == target_suffix_dot:
                find_res.append([file_name,os.path.join(root_path, file),root_path])
    return find_res


#图片所在目录
img=findAllFilesWithSpecifiedSuffix(r"C:\Users\Administrator\Desktop\test","png")

path=False
for k,v in enumerate(img):
    dist='<?xml version="1.0" encoding="UTF-8"?>'+"\n"
    dist+='<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">'+"\n"
    dist+='<plist version="1.0">'+"\n"
    dist+='    <dict>'+"\n"
    dist+='        <key>frames</key>'+"\n"
    dist+='        <dict>'+"\n"
    with open(v[1],'rb') as f:
        for line in f.readlines():
            line=str(line)
            if line.find("____")>0:
                path=False
                imginfo = Image.open(v[1])
                st2='         </dict>'+"\n"
                st2+='        <key>metadata</key>'+"\n"
                st2+='        <dict>'+"\n"
                st2+='            <key>format</key>'+"\n"
                st2+='            <integer>2</integer>'+"\n"
                st2+='            <key>realTextureFileName</key>'+"\n"
                st2+='            <string>'+v[0]+'.png</string>'+"\n"
                st2+='            <key>size</key>'+"\n"
                st2+='            <string>{'+str(imginfo.width)+','+str(imginfo.height)+'}</string>'+"\n"
                st2+='            <key>smartupdate</key>'+"\n"
                st2+='            <string></string>'+"\n"
                st2+='            <key>textureFileName</key>'+"\n"
                st2+='            <string>'+v[0]+'.png</string>'+"\n"
                st2+='        </dict>'+"\n"
                st2+='    </dict>'+"\n"
                st2+='</plist>'+"\n"
                dist+=st2
                #创建文件
                f=open(v[2]+"/"+v[0]+".plist",'w+',encoding='utf-8')
                f.write(dist)
                f.close()
                print("生成成功")
                break
            if path:
                line=line.replace("b'","")
                line=line.replace("\\r\\n'","")
                linearr=line.split("|")
                st1='            <key>'+linearr[0]+'</key>'+"\n"
                st1+='            <dict>'+"\n"
                st1+='                <key>frame</key>'+"\n"
                st1+='                <string>{{'+linearr[1]+','+linearr[2]+'},{'+linearr[3]+','+linearr[4]+'}}</string>'+"\n"
                st1+='                <key>offset</key>'+"\n"
                st1+='                <string>{'+linearr[5]+','+linearr[6]+'}</string>'+"\n"
                st1+='                <key>rotated</key>'+"\n"
                t="true"
                if linearr[9]=="0":
                    t="false"
                st1+='                <'+t+'/>'+"\n"
                st1+='                <key>sourceColorRect</key>'+"\n"
                st1+='                <string></string>'+"\n"
                st1+='                <key>sourceSize</key>'+"\n"
                st1+='                <string>{'+linearr[7]+','+linearr[8]+'}</string>'+"\n"
                st1+='            </dict>'+"\n"
                dist+=st1
            if line.find("path")>0:
                path=True
print("-------"+"\n")
print("生成完成"+"\n")
  

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐