使用python批量检查游戏美术图标资源

一、当前情况:

①目前公司的游戏项目,策划用的是excel编写配置。

②游戏的物品需要配置什么icon,支持策划自主配置。

③美术根据策划需要,完成某件物品的icon后,以游戏的物品code来命名,并根据物品分类,提交到约定的文件夹。

excel配置大概长这样

美术icon文件

 

二、产生的问题:

有些物品icon美术那边可能出现漏做了,但策划还是配置了上去。显示异常,导致报错等其他问题。(当然,这个报错程序那边也要做相应处理,在配置了一个没有的图标时,需要使用一个通用图标,不能出现卡死)

三、处理方法:

①从excel表那里获取icon值,保存为一个A列表

②获取icon名称,分割.png后缀后,保存为另一个B列表

③对比检查两个列表,检查A列表是否存在B列表中不存在的元素。

 

四、实现:

①这里使用xlrd库来读取excel。

import os
import re
import xlrd
# import pysnooper

# 打开Excel表
testExcel = xlrd.open_workbook('E:\物品表.xlsx')
# 根据Sheet名字获取Sheet
t_item_config_item = testExcel.sheet_by_name('item')
# 获取物品code字段列表与uiicon字段列表,用map函数将他们转成int类型,因为excel获得的可能是str类型的。
uicode = list(map(int, t_item_config_item.col_values(0, start_rowx=7, end_rowx=None)))

# 定义两个列表
normal = []
result = []

②获取美术资源的icon名称,并分割掉.png

def getfilename(path):
    f_list = os.listdir(path)
    for i in f_list:
        # os.path.splitext():或者.png后缀的文件名
        if os.path.splitext(i)[1] == '.png':
            normal.append(i)
    return normal

# 分离.png后缀
def cleanfilename(testlist):
    pattern = re.compile(r'\d+')
    for i in range(len(testlist)):
        result1 = pattern.findall(testlist[i])
        result.extend(result1)
    return result

③使用循环对比

def contrast(list1, list2):
    for i in list1:
        if i not in list2:
            print(i)

④执行

if __name__ == '__main__':
    path = 'E:/item'
    getfilename(path)
    #print(normal)
    cleanfilename(normal)
    testdata = list(map(int, result))
    contrast(uicode, testdata)

 

完-------------------------------------------------------------------------------------------------------------------------------------------

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值