import subprocess
# obj = subprocess.Popen('tasklist', shell=True, # 子进程向命令终端发送一个信号最后执行
# stdout=subprocess.PIPE, # 把正确的结果丢向管道里面
# stderr=subprocess.PIPE) # 把错误的结果丢向错误的管道里面
#
# print(obj.stdout.read().decode('gbk') + obj.stderr.read().decode('gbk')) # 读出管道的数据并解码
#
obj1 = subprocess.Popen('tasklist', shell=True, # 子进程向命令终端发送一个信号最后执行
stdout=subprocess.PIPE, # 把正确的结果丢向管道里面
stderr=subprocess.PIPE) # 把错误的结果丢向错误的管道里面
obj2 = subprocess.Popen('findstr python', shell=True, # 子进程向命令终端发送一个信号最后执行
stdin=obj1.stdout, # obj2的输入来源与上次管道的结果
stdout=subprocess.PIPE, # 把正确的结果丢向管道里面
stderr=subprocess.PIPE) # 把错误的结果丢向错误的管道里面
print(obj2.stdout.read().decode('gbk'))