[TOC]
<br>
### subprocess 模块
Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system、os.spawn*、os.popen*、popen2.*、commands.*不但可以调用外部的命令作为子进程,而且可以连接到子进程的input/output/error管道,获取相关的返回信息。
#### subprocess.call(*popenargs, timeout=None, **kwargs)
执行命令,等待命令完成或超时,然后再返回状态码
```cmd
>>> subprocess.call("netstat -an | findstr 80",shell=True)
TCP 192.168.0.106:60838 121.41.82.44:80 TIME_WAIT
TCP 192.168.0.106:60839 121.41.82.44:80 TIME_WAIT
UDP 127.0.0.1:58045 *:*
UDP 127.0.0.1:58046 *:*
0
```
#### subprocess.Popen(...)
在一个新进程中执行子程序,具体参数请查看源码
```cmd
>>> netstat = subprocess.Popen("netstat -an | findstr 80", shell=True,stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
>>> netstat
<subprocess.Popen object at 0x000002965A2EE780>
>>> netstat.stdout.read()
b' TCP 192.168.0.106:60865 52.230.85.180:443 ESTABLISHED\r\n TCP 192.168.0.106:60943 140.207.124.210:80 LAST_ACK\r\n TCP 192.168.0.106:60950 121.41.82.44:80 TIME_WAIT\r\n TCP 192.168.0.106:60951 121.41.82.44:80 TIME_WAIT\r\n UDP 127.0.0.1:58045 *:* \r\n UDP 127.0.0.1:58046 *:* \r\n'
>>> netstat.stderr.read()
b''
>>>
```
<hr style="margin-top:100px">
:-: ![](https://box.kancloud.cn/2ff0bc02ec938fef8b6dd7b7f16ee11d_258x258.jpg)
***微信扫一扫,关注“python测试开发圈”,了解更多测试教程!***
- 前言
- chapter01_开发环境
- chapter02_字符串的使用
- chapter03_列表的使用
- chapter04_字典的使用
- chapter05_数字的使用
- chapter06_元组的使用
- chapter07_集合的使用
- chapter08_输入输出
- chapter09_控制流程
- chapter10_实例练习_登录1
- chapter11_python函数入门
- chapter12_python中的类
- chapter13_轻松玩转python中的模块管理
- chapter14_掌握学习新模块的技巧
- chapter15_通过os模块与操作系统交互
- chapter16_子进程相关模块(subprocess)
- chapter17_时间相关模块(time & datetime)
- chapter18_序列化模块(json)
- chapter19_加密模块(hashlib)
- chapter20_文件的读与写
- chapter21_阶段考核2_登录
- chapter22_小小算法挑战(排序&二分法)
- chapter23_用多线程来搞事!
- chapter24_HTTP接口请求(requests)
- chapter25_接口测试框架(pytest)
- chapter26_阶段考核3_HTTP接口测试
- chapter27_HTML解析(pyquery)
- chapter28_阶段考核4_爬虫下载网易汽车
- chapter29_python中的那些编码坑
- chapter30_MySQL数据库操作
- chapter31 高级特性_迭代器与生成器
- chapter32 高级特性_装饰器
- chapter33 高级特性_列表处理