首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从YAML文件加载外壳颜色代码

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

Stack Overflow用户
提问于 2020-07-23 03:27:50
回答 1查看 459关注 0票数 2

如何使用ruamel yaml从yaml文件中为我的shell加载颜色代码?

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

代码语言:javascript
运行
复制
R = "\033[0;31;40m"
print(R+"TEST")

这将以红色输出"TEST“。(为了简单起见,我没有重置样式)

我有以下YAML文件:

代码语言:javascript
运行
复制
colors:
  red : \033[0;31;40m

我尝试从YAML文件加载颜色代码来实现相同的功能,但它直接输出\033[0;31;40mTEST。这是我的代码。(我尝试了不同的加载类型,引号,转义它,但我似乎不能让它工作。我理解这是出于安全原因而发生的。)

代码语言:javascript
运行
复制
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")
EN

Stack Overflow用户

回答已采纳

发布于 2020-07-23 04:38:35

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

代码语言:javascript
运行
复制
yaml.dump("\033[0;31;40m", sys.stdout)

提供:

代码语言:javascript
运行
复制
"\e[0;31;40m"

因此,使用:

代码语言:javascript
运行
复制
colors:
  red : "\e[0;31;40m"

你应该会好起来的。

YAML文件的推荐扩展名自2007年以来一直是.yaml

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63041788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档