我正在使用以下命令在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