在Python脚本中运行带有“实时”输出的bash脚本?

时间:2019-09-16 10:41:13

标签: python shell

我想知道是否有可能在Python脚本中运行bash脚本并“实时”获取bash脚本输出(不是在Python脚本运行bash脚本之后,我知道该怎么做)。

您可能会问我为什么要使用Python脚本:实际上,我想构建一个不错的CLI界面,并使用Inquirer来做到这一点。该界面允许用户执行使用bash脚本实际执行的任务。这就是为什么我不使用执行其他脚本的bash脚本的原因。

1 个答案:

答案 0 :(得分:2)

您可以使用以下实现实时获取shell脚本的STDOUT。

代码:

cmd="whoami"
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, bufsize=1)
for line in iter(p.stdout.readline, b''):
    print(line)
p.stdout.close()
p.wait()

输出:

>>> python3 test.py 
b'milanbalazs\n'