最近在做那個測試框架的時候發現 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創建一個新進程。
