我正在尝试自动执行我必须在Windows上重复执行的几个步骤,例如打开命令提示符并启动virtualenv然后启动idlex。我正在编写一个python脚本,我可以双击以自动执行这两个步骤。我读过this answer但是无法理解。下面是我写的脚本,我打算两次打电话给Popen
import subprocess
#launches virtualenv in command prompt
proc1 = subprocess.Popen('start\
"IDLE"\
/d c:\\Python27\\fp\
/wait\
C:\\Python27\\fp\\Scripts\\activate.bat',
shell=True,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
#starts idlex
proc2 = subprocess.Popen('start\
"IDLE"\
/B\
/d c:\\Python27\\fp\
/wait\
c:\\Python27\\fp\\scripts\\python.exe\
C:\\Python27\\fp\\Scripts\\idlex.py',
shell=True,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
我想在不进行第二次Popen调用的情况下执行这两个步骤,但是communication()不起作用,我不明白为什么。是因为start
产生了另一个句柄不可用的进程吗?