gpt4 book ai didi

python - 让子进程正确格式化

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

我正在尝试在 python 脚本末尾的子进程中执行 ansible-playbook 命令,它在启动正确的命令之前会发挥“魔法”。

如果您不熟悉 ansible-playbook。输出通常是彩色的(绿色/黄色/红色文本)并且间隔正确。

如果 python 只是启动一个命令并在需要时退出,我会很好。

命令完成后,我当前收到的是黑白文本。

我想实时获得正常的颜色输出,就像我从命令行运行 ansible-playbook 一样。有办法做到这一点吗?

我当前的代码如下:

command = '{0} --flush-cache -f 20 -i {1}/dyn_inv.py --extra-vars @{2}/vars.json {3}'.format(ansible_playbook_loc, script_path, var_path, args.playbook[0])
print command
process = subprocess.Popen(command.split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
devices = process.communicate()[0].rstrip('\n').split()
print devices

最佳答案

默认情况下,Ansible 仅在其输出连接到终端时才对文本进行着色。您可以通过在环境中设置 ANSIBLE_FORCE_COLOR=1 来强制它使用颜色代码。例如:

import os
os.environ['ANSIBLE_FORCE_COLOR'] = '1'

您可以通过设置 force_color 来完成同样的事情ansible.cfg 中的选项。

关于python - 让子进程正确格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48234424/

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