西西软件园多重安全检测下载网站、值得信赖的软件下载站!
西西首页 常用软件 软件下载 安卓软件 游戏下载 安卓游戏 MAC应用 驱动下载 安卓电视
系统工具网络工具媒体工具图形图像聊天工具应用软件编程开发手机软件安卓应用电脑安全字体素材

pak文件解析工具

Python版
  • pak文件解析工具Python版
  • 软件大小:16KB
  • 更新时间:2019-07-06 09:40
  • 软件语言:中文
  • 软件厂商:
  • 软件类别:国产软件 / 免费软件 / 编程工具
  • 软件等级:3级
  • 应用平台:WinXP, Win7, win8
  • 官方网站:暂无
好评:50%
坏评:50%

装机必备软件

软件介绍

pak文件解析工具,由吾爱大神编辑制作,能够解析pak文件,由Python环境制作,使用相应的编辑软件即可加载并解析,另外还附带一个pak的测试解析文件,可以通过代码来进行解析测试效果,有相关pak文件解析工具使用需求的朋友们不妨试试吧!

pak文件解析工具

pak文件解析代码介绍:

importos

importstruct

classBinary:

    def__init__(self, data: [bytearray, bytes,str]):

        self.index=0

        ifisinstance(data, bytearray):

            self.data=data

        elifisinstance(data, bytes):

            self.data=bytearray(data)

        elifisinstance(data,str):

            self.data=bytearray(data.encode(encoding='utf-8'))

        else:

            raiseTypeError('data type is invalid:', data.__class__.__name__)

        self.size=len(self.data)

    defread_int8(self)->int:

        ret=self.data[self.index]

        self.index+=1

        returnret

    defread_int16(self)->int:

        ret,=struct.unpack('h',self.data[self.index:self.index+2])

        self.index+=2

        returnret

    defread_int32(self)->int:

        ret,=struct.unpack('i',self.data[self.index:self.index+4])

        self.index+=4

        returnret

    defread_int64(self)->int:

        ret,=struct.unpack('q',self.data[self.index:self.index+8])

        self.index+=8

        returnret

    defread_string(self)->str:

        pass

    defread_bytes(self, size:int)-> bytearray:

        ifsize >self.rest():

            ret=self.data[self.index:]

            self.index+=self.rest()

            returnret

        ret=self.data[self.index:self.index+size]

        self.index+=size

        returnret

    def__len__(self):

        returnlen(self.data)

    defrest(self)->int:

        returnlen(self.data)-self.index

    @staticmethod

    defbytes2str(data: [bytearray, bytes]):

        out=''

        ifdataisNoneorlen(data)==0:

            return'Null'

        forbindata:

            ifout:

                out+=','

            out+='0x%02X'%b

        out+='\n'

        out+=data.decode('utf-8')

        returnout

classPakData:

    def__init__(self, br: Binary):

        self.version=br.read_int32()

        self.count=br.read_int32()

        self.coding=br.read_int8()

        self.resources=list()

        foriinrange(self.count):

            item={

                'id': br.read_int16(),

                'offset': br.read_int32(),

                'data': bytearray(),

                'size':0

            }

            self.resources.append(item)

        fori, iteminenumerate(self.resources):

            ifi+1<self.count:

                item['size']=self.resources[i+1]['offset']-item['offset']

            else:

                item['size']=len(br)-item['offset']

            item['data']=br.data[item['offset']:item['offset']+item['size']]

classPakFile:

    def__init__(self, path:str):

        self.path=path

        ifos.path.exists(path):

            self.decode()

            return

        self.data=None

    defset_path(self, path):

        self.path=path

    defdecode(self)->int:

        ifos.path.exists(self.path)isFalse:

            return-1

        withopen(self.path, mode='rb') asfile:

            raw=bytearray(file.read())

            file.close()

            br=Binary(raw)

            self.data=PakData(br)

defmain():

    pak=PakFile(r'.\zh-CN.pak')

    ifisinstance(pak.data, PakData):

        print('版本:', pak.data.version)

        print('数量:', pak.data.count)

        print('编码:', pak.data.coding)

        foriinrange(pak.data.count):

            print('ID:', pak.data.resources[i]['id'])

            print('偏移:', pak.data.resources[i]['offset'])

            print('大小:', pak.data.resources[i]['size'])

            print('内容:', Binary.bytes2str(pak.data.resources[i]['data']))

if__name__=='__main__':

    main()

软件截图

pak文件解析工具 Python版
    python编程工具
    (13)python编程工具关键词
    Python编程开发工具是一款非常强大的编程软件,Python是一种面向对象、直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。这种语言具有非常简捷而清晰的语法特更多>>

    其他版本下载

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)

    下载帮助下载帮助西西破解版软件均来自互联网, 如有侵犯您的版权, 请与我们联系。

    TOP
    软件下载