1、os.system方法
在子終端運行系統命令,能夠獲取命令執行後的返回信息以及執行返回的狀態。執行後返回兩行結果,第一行是結果, 第二行是執行狀態信息,若是命令成功執行,這條語句返回0,不然返回1。python
import os print(os.system('date'))
因爲python3默認採用了UTF-8編碼,而WIN8的CMD窗口採用的是GBK編碼,致使了編碼不一樣。編碼
可是,若是簡單的經過encode('gbk')之類的方法,不能解決根本問題。spa
尤爲是當咱們根本不是使用print命令來輸出,而是控制檯默認輸出的狀況下,是沒辦法修改os.system的編碼格式的,由於os.system執行命令返回的並非命令中出現的文本,而是一個int,爲0時表示成功,爲1時表示異常。線程
Pycharm下的解決方法:
2、os.popen方法3d
os.popen()方法不只執行命令並且返回執行後的信息對象(經常使用於須要獲取執行命令後的返回信息),是經過一個管道文件將結果返回。unix
import os os.popen()
3、commands模塊code
-- | 說明 |
---|---|
getoutput | 獲取執行命令後的返回信息 |
getstatus | 獲取執行命令的狀態值(執行命令成功返回數值0,不然返回非0) |
getstatusoutput | 獲取執行命令的狀態值以及返回信息 |
注意1:在類unix的系統下使用此方法返回的返回值(status)與腳本或命令執行以後的返回值不等,這是由於調用了os.wait()的緣故,具體緣由就得去了解下系統wait()的實現了。須要正確的返回值(status),只須要對返回值進行右移8位操做就能夠了。對象
注意2:當執行命令的參數或者返回中包含了中文文字,那麼建議使用subprocess。blog
4、subprocess模塊進程
subprocess模塊運用對線程的控制和監控,將返回的結果賦於一變量,便於程序的處理。
subprocess模塊是python從2.4版本開始引入的模塊。主要用來取代 一些舊的模塊方法,如os.system、os.spawn、os.popen、commands.*等。subprocess經過子進程來執行外部指令,並經過input/output/error管道,獲取子進程的執行的返回信息。