1. 原理
subprocess: 中文意思是子进程. 通过 popen 创建子进程, 通过为 PIPE 主进程和子进程提供数据交换.
PIPE 管道: 介绍
https://blog.csdn.net/skyroben/article/details/71513385
2.popen 参数介绍
args: 子进程运行的命令, 必须要是 string 类型的.
stdout,stderr,stdin, 标准的数据传输. 一般是将 PIPE 赋值给这三个参数.
datastdout,datastderr = communicate() 返回子进程的标准输出, 标准错误输出, 阻塞主进程, 直到子进程执行完成.
3. 调用 cmd 运行 ping www.baidu.com 命令
- import subpocess
- cmd = "ping www.baidu.com""
- ret = subprocess.popen(cmd,stdout =subprocess.PIPE )
实际应用中经常会发现阻塞.(阻塞表现什么样的呢? 阻塞什么?)
stdoutdata = ret.communicate()[0]
实际上返回结果为 b"xxxxxxx", 因为返回结果为一个 byte,decode() 转换一下就可以了.
rsult = stdoutdata.decode("utf-8)
将返回结果由 list 转换为 str 类型
print(result).
来源: http://www.jianshu.com/p/9b03cd11dc8b