Python调shell

时间:2021-02-14 19:14:13

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!