Python执行系统命令的方法 os.system(),os.popen(),commands

最近在做那个测试框架的时候发现 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创建一个新进程。

  

  

原文地址:https://www.cnblogs.com/hester/p/4807686.html