os.system(cmd)
函数返回cmd的结束状态码,阻塞调用。
os.popen(cmd)
函数返回cmd的标准输出,阻塞调用。
(status, output) = commands.getstatusoutput(cmd)
函数返回cmd的结束状态码和标准输出,阻塞调用。
subprocess.Popen(cmd,stdout=subprocess.PIPE)
函数返回一对象,其stdout成员可读,可用readline方式读;非阻塞调用。
注意,read()或communicate()函数都将阻塞父进程等待子进程。
可stdin,stdout交互,先开管道,但从管道读是阻塞的。
坑:p.poll(),查看进程是否结束,没有结束返回None,结束了返回0。Fantastic!