subprocess Python编程之子进程管理详解( 二 )

实例import subprocess as sp#  父进程不等待子进程p = sp.Popen('ls -l', shell=True,  stdout=sp.PIPE, stderr=sp.PIPE)# 父进程等待子进程结束之后再继续运行p = sp.Popen('ls -l', shell=True,  stdout=sp.PIPE, stderr=sp.PIPE)p.wait()# 使用内容管理器with Popen(["ls -l"], stdout=PIPE) as proc:print(proc.stdout.read())注意在使用管道(PIPE)输出stdout或者stderr时,请注意输出的数据量不能超过PIPE的上限,否则就会出现PIPE被阻塞,导致程序被阻塞无法继续运行,可以通过使用Popen.communicate()把stdout和stderr的输出存到内存中来缓解由于PIPE过小导致subprocess.Popen()无法继续运行程序的问题
Referencepython.org/3.5/library/subprocess.html" rel="external nofollow noreferrer">subprocess 官方文档

经验总结扩展阅读