最近在做那个测试框架的时候发现 Python 的另一个获得系统执行命令的返回值和输出的类。
1.最开始的时候用 Python 学会了 os.system() 。这个方法是拥塞的。
os.system('ping www.baidu.com')
2.通过 os.popen() 返回的是 file read 的对象,对其进行读取 read() 的操作可以看到执行的输出。这个方法是后台执行,不影响后续脚本运行。
output = os.popen('ping www.baidu.com') print(output.read())
执行结果:
3.通过 commands.getstatusoutput() 一个方法就可以获得到返回值和输出,给一个官方文档的例子:
import commands (status, output) = commands.getstatusoutput('cat /proc/cpuinfo') print status, output
之所以给官方文档例子,因为个人执行如下命令,发现无法运行。欢迎知道原因的网友给出解答。
import commands (status, output) = commands.getstatusoutput('ping www.baidu.com')
print status
print output
打印结果如下:
commands还有另外两个命令
commands.getoutput(cmd)
忽略了status,返回output(output是字符串格式)
commands.getstatus(file)
与上面相反,不多说了
关于commands的说明:
3.1 python3.0之后移除此命令,使用subprocess代替。
3.2 python3.x 使用subprocess创建一个新进程。