gpt4 book ai didi

Python:为 Ansible 编写 INI 文件

转载 作者:行者123 更新时间:2023-11-30 22:55:22 25 4
gpt4 key购买 nike

我想使用 python 生成一个具有精确结构的简单 .INI 文件,即

[win_clones]
cl1 ansible_host=172.17.0.200
cl3 ansible_host=172.17.0.202

到目前为止,这是我能够制作的:

[win_clones]
ansible_host = 172.17.0.200

[win_clones]
ansible_host = 172.17.0.202

我愿意:

  • 只有一个 [win_clones]

  • 包含名称 cl1/cl3

  • 删除空格,即 ansible_host=172.17.0.200

在我的数据(嵌套字典)和我正在使用的脚本下方:

from ConfigParser import ConfigParser
topush = { 'cl1': {'ansible_host': ['172.17.0.200']},
'cl3': {'ansible_host': ['172.17.0.202']} }


def gen_host(data, group):
''' Takes a dictionary. It creates a INI file'''
config = ConfigParser()
config.add_section(group)
with open('host_test', 'w') as outfile:
for key, value in data.iteritems():
config.set(group,'ansible_host',''.join(value['ansible_host']))
config.write(outfile)

if __name__ == "__main__":
gen_host(topush, 'win_clones')

最佳答案

这是一个“INI-like”文件,而不是 INI 文件。您必须手动编写它:

topush = {
'cl1': {'ansible_host': ['172.17.0.200']},
'cl3': {'ansible_host': ['172.17.0.202']}
}


def gen_host(data, group):
''' Takes a dictionary. It creates a INI file'''

with open('host_test', 'w') as outfile:
outfile.write("[{}]\n".format(group))

for key, value in data.iteritems():
outfile.write("{} ansible_host={}\n".format(key, value['ansible_host']))

if __name__ == "__main__":
gen_host(topush, 'win_clones')

关于Python:为 Ansible 编写 INI 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37456004/

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