python Subprocess执行系统命令管道、读取结果【多进程,进程间管道通信】
# -*- coding:utf-8 -*-__author__ = 'magicpwn'
import subprocess
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
# 执行命令的两个函数,新建进程执行系统命令
s = subprocess.check_call('dir', shell=True)
p = subprocess.call('dir', shell=True)
print s, p
# 执行命令并捕获系统命令输出结果
result = subprocess.check_output('netstat -an', shell=True)
# 直接调用Popen 设置为进程双向通信,管道通信
proc = subprocess.Popen(['netstat', '-an'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
msg = 'through stdin to stdout'
stdout_value = proc.communicate(msg)
print '\tpass through:', repr(stdout_value)
页:
[1]