- 把戏 tags:
- linux
- python published: true comments: true
问题:
您要通过python的subprocess模块执行一些命令,要在程序中获得命令的标准输出,此外,命令中还有管道操作。解决:
以这个命令为例: cat /home/admin/deploy/log/2009-11-11.log |grep example.com |wc -limport 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]