gpt4 book ai didi

python - 如何从文本文件中列出的数据创建 YAML 文件?

转载 作者:太空宇宙 更新时间:2023-11-03 19:55:51 26 4
gpt4 key购买 nike

我有一个文件 hostname.txt 包含以下内容:

1.1.1.1
2.2.2.2
3.3.3.3

希望在 hostname.yaml 文件中使用以下格式,最好使用 python(bash shell 也可以)。

host1:
hostname: 1.1.1.1
platform: linux

host2:
hostname: 2.2.2.2
platform: linux

host3:
hostname: 3.3.3.3
platform: linux

最佳答案

由于 YAML 文件是文本文件,因此原则上您可以使用标准编写它们Python 输出例程。但是,您需要了解以下所有详细信息YAML specification为了使其成为有效的 YAML 文件。

这对于您的示例来说相对简单,但这只是因为您这样做了不会遇到任何 YAML 特殊情况,例如需要引用。

缺乏对 YAML 规范的详细了解,最好坚持使用 YAML 加载器/转储器库。单一库支持YAML 1.2 标准是 ruamel.yaml (免责声明:我是那个包)。

安装后(在 Python 虚拟环境中使用 pip install ruamel.yaml),您可以执行以下操作:

from pathlib import Path
import ruamel.yaml

in_file = Path('hostname.txt')
out_file = in_file.with_suffix('.yaml')

yaml = ruamel.yaml.YAML()
data = {}
index = 0
for line in in_file.open():
line = line.strip()
index += 1
data[f'host{index}'] = dict(hostname=line, platform='linux')

yaml.dump(data, out_file)

给出:

host1:
hostname: 1.1.1.1
platform: linux
host2:
hostname: 2.2.2.2
platform: linux
host3:
hostname: 3.3.3.3
platform: linux

请注意,第三个条目的主机名(IP 地址?)与您的示例不同,因为我不知道你希望你的程序如何重复第二个值而不使用输入文件中的第三个值。

关于python - 如何从文本文件中列出的数据创建 YAML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59544760/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com