有没有一种方法可以将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')
我已经尝试了上面的方法,但是没有用,
感谢您的帮助
您可以使用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
。