【发布时间】:2021-05-26 18:18:53
【问题描述】:
我有一个简单的 Python 脚本,可以实时打印命令的输出。以下是脚本:
#!/usr/bin/env python3
import subprocess
def RunSubProcess(process, process_args):
process = subprocess.Popen([process, process_args],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True)
while process.stdout.readable():
line = process.stdout.readline()
if not line:
break
print(line.strip())
RunSubProcess('ls', '-la')
该脚本可以很好地完成它应该做的事情,但它会丢失我 shell 上输出的颜色编码。如果我输入ls -la,我会得到很好的输出颜色。但是如果我运行上面的 Python 脚本,它会给出输出 uncolored.
subprocess.Popen 是否有一个参数可以保留其运行的 shell 的颜色编码?
PS:
我在安装了 Python 3.9.0 的 MacOS 上的 bash shell 上运行这个 Python 脚本。
【问题讨论】:
标签: python python-3.x subprocess