解析YAML文件并代入模板
我有一堆YAML文件在一个配置文件夹和模板文件夹中的一堆模板。 是否有一个简单的单行程序或函数可用于解析YAML文件并替换模板文件以生成可执行脚本
输入:
config文件夹: config/yaml1
, config/yaml2
, config/yaml3.
。
模板: template/template1
, template/template2
, template3
。
产量
scripts/script1
, script2
, script3
脚本的数量=模板的数量
有2种类型的模板
一个是直截了当的替代例子
YAML1:
Titles:4
SubTitles:10
Template1:
Number of Titles {Titles} where as Number of Subtitles is {SubTitles}
其他模板是嵌套的。 基本上模板需要基于YAML循环例子:
YAML2:
Book: "The Choice of using Choice"
Author: "Unknown1"
Book: "Chasing Choices"
Author:"Known2"
Template2
Here are all the Books with Author Info
The author of the {Book} is {Author}
我不完全确定你要完成什么,我不知道你的可执行脚本是什么意思? 如果我正确解释它,您可能会从PyYAML文档中获益。 具体来说,关于YAML标签和Python类型的部分。
有几个YAML标签允许调用python模块或包,并且包参数由它下面的嵌套YAML标签填充。 所以,你将不得不编写一个消耗YAML kwargs的类或函数,但是你只需在YAML配置中调用它就像这样一行,
!!python/object/apply:module.function [argument, ...]
尽管你可能也会从看到关于构造函数,表示符和解析器的部分以及python文档中的string.Template中受益。
理论上,您应该能够从YAML文件中调用substitution()函数。
YAML不知道有关模板的任何信息,而且您也没有指定需要更新的模板类型。 但是,如果您使用的模板语言假设其替代值来自Python字典中的键值对,那么您可以在YAML文件中指定顶级映射,加载该映射(将构建到Python中字典),然后将其馈入模板引擎。
你仍然需要遍历你的文件,所以只需几行代码就可以实现上述目标。
链接地址: http://www.djcxy.com/p/38625.html