对于我的项目,我使用OpenCV创建了10,000个YAML文件。然后我不得不在MATLAB中读取这10,000个文件,所以我使用了YAMLMATLAB。由OpenCV创建的文件在每个文件的开头放置了以下代码。
%YAML:1.0不幸的是,YAMLMATLAB不理解%YAML:1.0。有人推荐我重建YAMLMATLAB,即SnakeYaml Java库。有没有其他方法可以让它工作。
发布于 2015-08-07 20:46:01
%引入了一个指令,如果要使其成为可识别的指令(只有两个指令:%TAG和%YAML ),则%YAML directive应该后跟一个空格来结束名称。这实际上是一个unknown的指令,值为%YAML:1.1,没有任何参数。
MatLab (和例如PyYAML)拒绝加载这样的文件,正如YAML规范对ignore unknown directives所说的那样,这不是正确的行为。当然,OpenCV提供了一个不正确的指令也是不好的。
忽略不正确的指令是ruamel.yaml所做的(免责声明:我是该包的作者)。如果在往返模式下安装并运行其实用程序yaml:
yaml rt --save *.yaml表单中的文件:
%YAML:1.0
---
abc: def
klm: ghi转换为:
abc: def
klm: ghi它应该可以在MatLab中加载。
在运行命令之前,请确保对文件进行备份,因为--save会将文件保存在适当位置(即覆盖原始文件)。
如果您不想安装ruamel.yaml,当然也可以使用其他命令行工具删除前两行(指令和文档分隔符)。
https://stackoverflow.com/questions/31876140
复制相似问题