一个简单的任天堂byml或byaml v2/v3解析器和编写器
byml的Python项目详细描述
简单的bymlv2解析器+writer+转换器
功能:
- 支持v2和v3文件。这些版本分别由 塞尔达传说:狂野的气息和超级马里奥奥德赛。
- 支持在super mario odyssey中使用的64位节点类型。
- 支持两端性。开关上使用了小endian格式。
- 跨平台。
- 易于编辑和读取输出。没有难看的XML。不显眼的类型信息。
快速使用
安装python 3.6+,然后运行pip install byml
。
pyyaml的c模块当前是一个硬依赖项。如果你在窗户上,你不必做什么特别的事。如果您在Linux或MacOS上,则需要安装libyaml。
byml到yaml
byml_to_yml PATH_TO_BYML PATH_TO_YAML
如果byml被压缩,此工具将自动解压缩它们。
要重用输入文件名并只更改扩展名,请使用!!.NEW_EXTENSION
作为第二个参数。
示例:要在与byml相同的目录中转换为yaml,请使用byml_to_yml path_to_botw/Actor/ActorInfo.product.sbyml !!.yml
从Yaml到Byml
yml_to_byml PATH_TO_YAML PATH_TO_BYML
add-b
如果应该使用big endian的话。Wii U版的《野性的呼吸》
您必须传递该标志。
要重用输入文件名并只更改扩展名,请使用!!.NEW_EXTENSION
作为第二个参数。
如果目标文件扩展名以.s
开头,工具将自动压缩
使用yaz0的byml。
关于yaml整数/浮点数
的说明!u
整数前表示该值没有符号。一般来说,您应该 签名不变。!l
用于有符号的64位值。(不用于底部。)!ul
用于无符号64位值。(不用于底部。)!f64
用于二进制64浮点值。(不用于底部。)
高级使用
默认情况下,如果未指定目标参数,则输出将发送到stdout, 这对于在不创建临时文件的情况下查看bymls非常方便。
库使用
importbymlparser=byml.Byml(raw_bytes)document=parser.parse()writer=byml.Writer(document,be=big_endian_mode,version=byml_version)writer.write(writable_seekable_stream)
许可证
本软件根据GNU通用公共许可(第2版或更高版本)的条款获得许可。