移動互聯網技術的快速發展,爲各大行業都提供了發展機遇,在市場的影響之下,Python語言變得更加火爆,***到各大領域,如今不少開發工做都會使用到Python,不過進行Python開發搭建框架的時候,每每須要命令進行操做,那麼你知道如何用Python調用系統命令嗎?小編爲你們介紹一下。python
1. os.system()python3.x
這個方法直接調用標準C的system()函數,僅僅在一個子終端運行系統命令,而不能獲取執行返回的信息。框架
>>> import oside
>>> output = os.system(‘cat /proc/cpuinfo‘)函數
processor : 0ui
vendor_id : AuthenticAMDspa
cpu family : 21unix
... ...對象
>>> output # doesn‘t capture output進程
0
2. os.popen()
這個方法執行命令並返回執行後的信息對象,是經過一個管道文件將結果返回。
>>> output = os.popen(‘cat /proc/cpuinfo‘)
>>> output
>>> print output.read()
processor : 0
vendor_id : AuthenticAMD
cpu family : 21
... ...
>>>
3. commands模塊
>>> import commands
>>> (status, output) = commands.getstatusoutput(‘cat /proc/cpuinfo‘)
>>> print output
processor : 0
vendor_id : AuthenticAMD
cpu family : 21
... ...
>>> print status
0
注意1:在類unix的系統下使用此方法返回的返回值(status)與腳本或命令執行以後的返回值不等,這是由於調用了os.wait()的緣故,具體緣由就得去了解下系統wait()的實現了。須要正確的返回值(status),只須要對返回值進行右移8位操做就能夠了。
注意2:當執行命令的參數或者返回中包含了中文文字,那麼建議使用subprocess。
4. subprocess模塊
該模塊是一個功能強大的子進程管理模塊,是替換os.system, os.spawn*等方法的一個模塊。
>>> import subprocess
>>> subprocess.Popen(["ls", "-l"]) # python2.x doesn‘t capture output
>>> subprocess.run(["ls", "-l"]) # python3.x doesn‘t capture output
>>> total 68
drwxrwxr-x 3 xl xl 4096 Feb 8 05:00 com
drwxr-xr-x 2 xl xl 4096 Jan 21 02:58 Desktop
drwxr-xr-x 2 xl xl 4096 Jan 21 02:58 Documents
drwxr-xr-x 2 xl xl 4096 Jan 21 07:44 Downloads
... ...
>>>