1 os模块实现
import os
cmd = 'ping baidu.com'
r = os.popen(cmd)
for line in r.readlines():
print (line)
以上代码利用os.popen()指令获取了控制台的输出内容。
结果示例:
正在 Ping baidu.com [123.125.115.110] 具有 32 字节的数据:
来自 123.125.115.110 的回复: 字节=32 时间=50ms TTL=44
来自 123.125.115.110 的回复: 字节=32 时间=51ms TTL=44
来自 123.125.115.110 的回复: 字节=32 时间=50ms TTL=44
来自 123.125.115.110 的回复: 字节=32 时间=52ms TTL=44
123.125.115.110 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 50ms,最长 = 52ms,平均 = 50ms
辨析os.system与os.popen函数
两个函数均执行参数中的系统指令
os.system指令返回值为系统的退出状态码
os.popen指令返回值为控制台的输出内容
2 subprocess模块实现
PEP324标准中,提出了用subprocess模块取代os.system和os.popen