如何根据skinid获取十六进制值

问题描述 投票:0回答:0

我想从 SkinId 输入中查找并获取十六进制值关键字。

下载示例文件供自己阅读:示例文件

import re, os
os.system('color 4')

def find_keyword(skinId):
    with open("infos/116_JingKe_actorinfo.bytes", "rb") as f:
        byte_string = f.read()

    key_word = f"116_JingKe/{skinId}".encode('utf-8')
    #key_word = b'TypeSystem.String'
    matches = re.findall(key_word, byte_string)
    start_keyword = b'JTPri'
    end_keyword = b'LOD'

    # Define the regular expression pattern to match the start and end keywords
    #pattern = re.compile(start_keyword + b".*?" + end_keyword + b"\d*", re.DOTALL)
    #pattern = re.compile(start_keyword + b".*?(?=LOD|Show\d)", re.DOTALL)
    pattern = re.compile(start_keyword + b".*?(?=LOD|Show)" + end_keyword + b"\d*", re.DOTALL)
    #pattern = re.compile(start_keyword + b".*?" + end_keyword, re.DOTALL)

    # Find all occurrences of the pattern in the file contents
    matches = pattern.findall(byte_string)


    for match in matches:
        if key_word in match:
            print(match)

while True:
    skinId = input(" >>> SKIN ID :")
    find_keyword(skinId)
    if skinId == 'x':
        break
    os.system('pause')
    os.system('cls')

结果:https://i.stack.imgur.com/zOGNL.png

期望的结果:

b'JTPri\x19\x00\x00\x00\x08\x00\x00\x00TypeSystem.StringC\x00\x00\x00\x05\x00\x00\x00VPrefab_Characters/Prefab_Hero/116_JingKe/11614_JingKe_LOD1' b'JTPri\x19\x00\x00\x00\x08\x00\x00\x00TypeSystem.StringC\x00\x00\x00\x05\x00\x00\x00VPrefab_Characters/Prefab_Hero/116_JingKe/11614_JingKe_LOD2' b'JTPri\x19\x00\x00\x00\x08\x00\x00\x00TypeSystem.StringC\x00\x00\x00\x05\x00\x00\x00VPrefab_Characters/Prefab_Hero/116_JingKe/11614_JingKe_LOD3'

b'JTPri\x19\x00\x00\x00\x08\x00\x00\x00TypeSystem.StringD\x00\x00\x00\x05\x00\x00\x00VPrefab_Characters/Prefab_Hero/116_JingKe/11614_JingKe_Show1 b'JTPri\x19\x00\x00\x00\x08\x00\x00\x00TypeSystem.StringD\x00\x00\x00\x05\x00\x00\x00VPrefab_Characters/Prefab_Hero/116_JingKe/11614_JingKe_Show2' b'JTPri\x19\x00\x00\x00\x08\x00\x00\x00TypeSystem.StringD\x00\x00\x00\x05\x00\x00\x00VPrefab_Characters/Prefab_Hero/116_JingKe/11614_JingKe_Show3'

python hex byte
© www.soinside.com 2019 - 2024. All rights reserved.