python解析器下载_pak文件解析-pak文件解析工具下载Python版-西西软件下载
pak文件解析工具,由吾爱大神编辑制作,能够解析pak文件,由Python环境制作,使用相应的编辑软件即可加载并解析,另外还附带一个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
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()
python解析器下载_pak文件解析-pak文件解析工具下载Python版-西西软件下载相关推荐
- CeisumLabApkServe--为CeisumLab工具下载地图,影像数据的.pak文件架设地图服务
CesiumLabApkServe 为CeisumLab工具下载地图,影像数据的.pak文件架设地图服务 需要node环境 node下载地址:https://nodejs.org/zh-cn/ gih ...
- python解析器原理_Python程序运行原理图文解析
本文研究的主要是Python程序运行原理,具体介绍如下. 编译型语言(C语言为例) 动态型语言 一个程序是如何运行起来的?比如下面的代码 #othermodule.py def add(a, b): ...
- Gson:GitHub 标星 18K 的 JSON 解析器,Google 出品的 Java JSON 解析器,强烈推荐!
01.前世今生 我叫 Gson,是一款开源的 Java 库,主要用途为序列化 Java 对象为 JSON 字符串,或反序列化 JSON 字符串成 Java 对象.从我的名字上,就可以看得出一些端倪,我 ...
- 谷歌的json解析器Gson在Android/Java中的常用工具类
gson解析器,可实现子类和json字符串之间互转 package com.hulk.ues.core;import android.text.TextUtils; import android.ut ...
- java js 解析器_graphqljs具有多个参数的解析器
我试图找出编写一个过滤多个参数的解析器的最佳方法 . 我有以下graphql类型 const userQuery = new GraphQLObjectType({ name: 'Query', fi ...
- asar软件包linux,ASAR文件查看打包解包工具下载-ASAR文件查看打包解包工具v2018.07.12免费版-ucbug软件站...
ASAR文件查看打包解包工具是一款能够帮助用户对ASAR文件进行管理的工具,通过ASAR文件查看打包解包工具能够对文件进行查看.打包.解包等功能,有需要的可以下载使用. 功能介绍 electron的a ...
- 隐写文件的识别和解码工具——国内首款隐写术识别软件(隐译)
了解隐写术 隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容. 隐写术的应用 随着网络技术发展,隐写术领域已经成为了信息安全的焦点 ...
- 【短视频剪辑】爱剪辑APP手机版SVIP破解版永久使用软件下载
随着移动端的发展,手机已经是我们日常生活中离不开的东西了,进而也催生了一系列手机APP,特别是近年来的短视频app尤其火爆,大家都爱拍自己的小视频然后剪辑上传到抖音.快手.皮皮虾等短视频平台. 爱剪辑 ...
- 电脑向linux服务器传输文件,windows如何通过ssh工具向linux服务器上传和下载文件?...
这个是很简单的.我用win10和kali给你举例子.kali自带了ssh,只不过我们需要开启它.kali下运行ps -e | grep ssh,你会发现已经有了ssh.只是没有启动,启动方法是/etc ...
- python装饰器函数执行后日志_一篇文章搞懂Python装饰器所有用法
如果你接触 Python 有一段时间了的话,想必你对 @ 符号一定不陌生了,没错 @ 符号就是装饰器的语法糖. 它放在一个函数开始定义的地方,它就像一顶帽子一样戴在这个函数的头上.和这个函数绑定在一起 ...
最新文章
- 在不同域中各个系统拥有自已独立的用户系统时的单点登录问题
- Nginx PHP 报504 Gateway time-out错误的解决方法
- 实用工具类库java.util
- Android复习11【service-音乐播放器、定时器、IntentService、ALDL使用】
- ALV打印不显示打印界面的问题
- dev可以运行mysql文件夹_Linux查看mysql 安装路径和运行路径
- 设计模式之观察者模式(Java)
- 中国区Azure基本实例更新
- Angularjs中$http以post请求通过消息体传递参数
- #牛客网 2018年牛客多校算法寒假训练营练习比赛(第五场)
- ajax/ 回调函数(回调地狱)
- 解耦原子范数最小化(Decoupled Atomic Norm Minimization)
- MFC 句柄Hwnd 与 窗口Wnd的联系
- 【重识云原生】第六章容器6.3.5节——Controller Manager概述
- 医用腕带应用整体解决方案:老人智能用药场景,老人防走丢报警-新导智能
- 火焰检测网络(October, 2018,ICIP)
- javaScript算术题(经典案例)
- XX用户不在 sudoers 文件中。此事将被报告。
- Linux ping www.baidu.com 不通解决办法
- 电商平台关键词监控价格API接口,店铺监控API接口调用展示
热门文章
- 模式识别—判别函数分类法(几何分类法)
- wend计算机语言,计算机脚本语言开机显示当前页面发生
- 学弟学妹看我文章顺利毕业,基于HTML+Javascript五子棋人机博弈系统设计与实现《记得收藏》
- TinyMC编辑器简介
- 【尚硅谷】JavaWeb
- java后台开发程序媛~~
- 欧姆龙cp1h指令讲解_欧姆龙cp1h常用指令学习(六)功能块、子程序
- 百度关键词抓取工具_手把手教你百度霸屏引流 三大核心推广技巧 人人可操作...
- visa虚拟卡生成器_虚拟信用卡,额度6万!无需面签即可办理
- (自用)Linux系统彻底卸载MySQL数据库