import  subprocess

"""
subprocess是运行子进程的模块
"""

obj=subprocess.Popen('echo 123 ; ls / ; ls /root',shell=True,
                 stdout=subprocess.PIPE,
                 stderr=subprocess.PIPE,
                 )
"""
运行三条命令:
	echo 123  	打印123
	ls /     	打印根目录下的文件内容
	ls /root	打印根目录下root目录下的文件内容
使用shell来运行
stdout		将输出的内容投送到subprocess.PIPE该管道,没有出错赋值给stdout
stderr		将输出的内容投送到subprocess.PIPE该管道,运行出错赋值给stderr
"""

print(obj)
# 打印子进程对象
res=obj.stdout.read()		#读取子进程对象中正常输出管道里的内容
print(res.decode('utf-8'))	#输出为bytes类型,根据操作系统默认编码做解码操作
				#windows一般为gbk,linux一般为utf-8

err_res=obj.stderr.read()	#读取子进程对象中错误输出管道里的内容
print(err_res.decode('utf-8'))	#同样根据操作系统默认编码来解码