如何使用ruamel yaml从yaml文件中为我的shell加载颜色代码?
我可以通过python通过一些非常简单的指令来更改shell中的颜色:
R = "\033[0;31;40m"
print(R+"TEST")
这将以红色输出"TEST“。(为了简单起见,我没有重置样式)
我有以下YAML文件:
colors:
red : \033[0;31;40m
我尝试从YAML文件加载颜色代码来实现相同的功能,但它直接输出\033[0;31;40mTEST
。这是我的代码。(我尝试了不同的加载类型,引号,转义它,但我似乎不能让它工作。我理解这是出于安全原因而发生的。)
import ruamel.yaml
path_to_config = "config/config.yml"
yaml = ruamel.yaml.YAML(typ="safe")
with open(path_to_inventory) as fpi:
config = yaml.load(fpi)
print(config["colors"]["red"]+"TEST")
发布于 2020-07-23 04:38:35
在YAML中,反斜杠只有在双引号之间时才有特殊意义。要知道您的YAML应该是什么样子,最好是转储您想要的结果:
yaml.dump("\033[0;31;40m", sys.stdout)
提供:
"\e[0;31;40m"
因此,使用:
colors:
red : "\e[0;31;40m"
你应该会好起来的。
YAML文件的推荐扩展名自2007年以来一直是.yaml
。
https://stackoverflow.com/questions/63041788
复制相似问题