从YAML文件加载外壳颜色代码

2024-04-29 07:58:55 发布

您现在位置:Python中文网/ 问答频道 /正文

如何从带有ruamel yaml的yaml文件中加载shell的颜色代码##

我可以通过python通过一些非常简单的说明更改shell中的颜色:

R = "\033[0;31;40m"
print(R+"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")

Tags: 文件topathtestconfigyaml颜色ruamel
1条回答
网友
1楼 · 发布于 2024-04-29 07:58:55

反斜杠只有在双引号之间的YAML中才有特殊含义。要知道您的YAML应该是什么样子,最好转储您想要的结果:

yaml.dump("\033[0;31;40m", sys.stdout)

给出:

"\e[0;31;40m"

因此:

colors:
  red : "\e[0;31;40m"

你应该没事的

自2007年以来,YAML文件的建议扩展名为.yaml

相关问题 更多 >