subprocess.call输出为彩色

问题描述 投票:0回答:1

有没有一种方法可以将subprocess.call输出显示为不同的颜色,而不是返回到默认颜色?我正在使用colorama。但以下内容对我不起作用。打印效果良好,并以绿色打印测试。

subprocess.call(["%s; " % Fore.GREEN, "hostname;" "%s" % Fore.RESET], shell=True)
subprocess.call([Fore.RED,'hostname'], shell=True)
print (Fore.GREEN,'test')

我已经尝试了上面的方法,但是没有用,

感谢您的帮助

python subprocess colorama
1个回答
0
投票

您可以使用subprocess.run代替subprocess.call

subproces.run有一个capture_output关键字,可用于实现您的目标,例如:

>>> import colorama
>>> import subprocess
>>> colorama.init(autoreset=True)
>>> out =subprocess.run(['hostname'], capture_output=True)
>>> print(colorama.Fore.GREEN + out.stdout.decode())
darknet

在这种情况下,darknet是主机名,可能会以绿色打印。我还设置了autoreset=True

© www.soinside.com 2019 - 2024. All rights reserved.