正则表达式捕获时打印出子流程 - python

我正在使用以下命令在python中运行bash命令:

proc = subprocess.Popen(cmd)
proc.wait()

此cmd打印输出。但是我不希望它被打印,除非它被某些正则表达式捕获。不确定如何执行此操作,因为这是我第一次使用subprocess

python大神给出的解决方案

您也可以将输出直接管道传输到grep等。:

from subprocess import PIPE, Popen

p = Popen(["ps"], stdout=PIPE)
p2 = Popen(["grep", "chrome"],stdin=p.stdout, stdout=PIPE,universal_newlines=True)
p.stdout.close()

out,err = p2.communicate()
print(out)

 421 ?        00:00:03 chrome
 767 ?        00:00:02 chrome
 843 ?        00:00:04 chrome
 2788 ?        00:52:16 chrome
 2819 ?        00:00:00 chrome-sandbox
 2820 ?        00:00:00 chrome
 2827 ?        00:00:00 chrome-sandbox