方法1: os.systemjava
直接使用 os.system("command") 來執行外部程序,返回程序結束返回碼(正常0/1錯誤),這其實是使用C標準庫函數system()實現的。這個函數在執行command命令時須要從新打開一個終端,而且沒法保存command命令的執行結果。segmentfault
缺點: 不能獲取程序輸出stdout.不能像PHP的exec(string $command [, array &$output [, int &$return_var ]] )來用數組儲存輸出stdout.數組
方法2: os.popen函數
popen實際是獲取命令運行後的輸出結果,儲存在臨時文件當中. 使用命令:spa
os.popen(command [, mode, bufsize])對象
實際原理是打開一個與command進程之間的管道。這個函數的返回值是一個文件對象,能夠讀或者寫(由mode決定,mode默認是’r')。若是mode爲’r',能夠使用此函數的返回值調用read()來獲取command命令的執行結果。進程
支持逐行分析以下例代碼:rem
也支持 p.readlines(), for line in p等文件處理方法.get
方法3: commands.getstatusoutputstring
使用命令: status, output = commands.getstatusoutput(command)
實際使用os.popen()函數執行command命令並返回一個元組(status,output),分別表示command命令執行的返回狀態和執行結果。對command的執行其實是按照{command;} 2<&1的方式,因此output中包含控制檯輸出信息或者錯誤信息。output中不包含尾部的換行符。
以上就是在Python中調用外部命令是什麼的詳細內容,但願對你有所幫助。
閱讀原文:在Python中調用外部命令是什麼
相關文章:
如何高效地獲取文件行數
java中什麼是序列化
如何刪除 list 中指定 index 的元素
如何輸出到stderr
c語言數組中以列優先對嗎?