import subprocess
#print(subprocess.check_output("mkdir test4", shell=True).decode('gbk')) #当执行结果为0的时候直接返回值,如果不为0则报错
#print(subprocess.call('cd ..', shell=True))#执行成功返回0执行失败返回1
#subprocess.Popen():
#在一些复杂场景中,我们需要将一个进程的执行输出作为另一个进程的输入。在另一些场景中,我们需要先进入到某个输入环境,然后再执行一系列的指令等。这个时候我们就需要使用到suprocess的Popen()方法。该方法有以下参数:
#args:shell命令,可以是字符串,或者序列类型,如list,tuple。
#bufsize:缓冲区大小,可不用关心
#stdin,stdout,stderr:分别表示程序的标准输入,标准输出及标准错误
#shell:与上面方法中用法相同
#cwd:用于设置子进程的当前目录
#env:用于指定子进程的环境变量。如果env=None,则默认从父进程继承环境变量
#universal_newlines:不同系统的的换行符不同,当该参数设定为true时,则表示使用\n作为换行符
#示例1,在/root下创建一个suprocesstest的目录:
#>>> a = subprocess.Popen('mkdir subprocesstest',shell=True,cwd='/root')
#obj=subprocess.Popen('python', shell=True,stdin=subprocess.PIPE, stdout=subprocess.PIPE,stderr=subprocess.PIPE)
#print(obj.stdin.write('print 1').encode('utf-8'))
#print(obj.stdout.read())
#print(obj.stderr.read())
a = subprocess.Popen('python --help',shell=True,cwd='D:\pyScripts\Test',stdin=subprocess.PIPE,)
#print(a.stdout.read())
print(a.stdin.write('print 1').encode('utf-8'))