一个简单的任天堂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版或更高版本)的条款获得许可。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法找到或加载主异常   javajenkins堆空间   java JVM不在服务器中进行昼间更改   java让事务在App Engine读写中包装每个数据存储事件是否存在性能风险?   java修改位图后,如何修改“修改过的”位图等?   java我可以使用Hibernate注释自动将枚举集映射到一系列布尔列吗?   如何从另一个类访问变量?索爱手机应用开发职位   java优化屏幕从手机大小到平板电脑大小安卓开发   Spring JPA中的java删除实体   如何在不部署带有更改的新服务并终止旧服务的情况下更改live Java web服务?   java如何设置jTextField剪辑超长文本的位置?   javascript Java替代“谷歌代码美化器”   java如何使链接重定向到servlet?   java如何让glassfish 4和jsf中的websocket正常工作?   java为什么Gson在字符串中添加斜杠   java隐式类型转换不适用于方法参数?   java XML到JSON丢失根节点   java无法更改应用程序主题设置:(   java在多个类中使用自定义异常