实例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 官方文档
经验总结扩展阅读
- python基础--简单数据类型预览
- python基础-较复杂数据类型预览
- 1 Python全栈工程师之从网页搭建入门到Flask全栈项目实战 - ES6标准入门和Flex布局
- StampedLock:一个并发编程中非常重要的票据锁
- Punched Card 编程架构演化史:远古时代,从打孔卡开始
- python的基本运用
- python-绘图与可视化
- Go的网络编程详解
- 插件化编程之WebAPI统一返回模型
- Python函数-2V2