Use pipe in subprocess
问题:
您要通过python的subprocess模块执行一些命令,要在程序中获得命令的标准输出,此外,命令中还有管道操作。
解决:
以这个命令为例:
cat /home/admin/deploy/log/2009-11-11.log |grep example.com |wc -l
import subprocess cmd1 = 'cat /home/admin/deploy/log/2009-11-11.log' cmd2 = 'grep example.com' cmd3 = 'wc -l' pipe1 = subprocess.Popen(cmd1.split(), stdout=subprocess.PIPE) pipe2 = subprocess.Popen(cmd2.split(), stdin=pipe1, stdout=subprocess.PIPE) pipe3 = subprocess.Popen(cmd3.split(), stdin=pipe2, stdout=subprocess.PIPE) result = pipe3.communicate()[0]