python執行系統命令四種方法比較
Python中執行系統命令常見的幾種方法有
注意:以下例項程式碼在Python3.5下執行透過。
一、os.system方法
os.system(cmd)
在子終端執行系統命令,可以獲取命令執行後的返回資訊以及執行返回的狀態
1
2
3
4 |
>>>
import
os >>> os.system(
'date'
) 2018年 4月 8日 星期日 19時29分13秒 CST 0
#執行狀態號,0表示正確 |
執行後返回兩行結果,第一行是結果, 第二行是執行狀態資訊
二、os.popen方法
os.popen(cmd)
不僅執行命令而且返回執行後的資訊物件(常用於需要獲取執行命令後的返回資訊),是透過一個管道檔案將結果返回
1
2
3
4 |
>>>
import
os >>> nowtime = os.popen(
'date'
) >>> print(nowtime.
read
()) 2018年 4月 8日 星期日 19時30分35秒 CST |
三、commands模組
方法 說明
getoutput 獲取執行命令後的返回資訊
getstatus 獲取執行命令的狀態值(執行命令成功返回數值0,否則返回非0)
getstatusoutput 獲取執行命令的狀態值以及返回資訊
1
2
3
4 |
>>>
import
commonds >>> status, output = commands.getstatusoutput(
'date'
) >>> print(status)
# 0 >>> print(output)
# 2018年 4月 8日 星期日 19時31分45秒 CST |
注意1:在類unix的系統下使用此方法返回的返回值(status)與指令碼或命令執行之後的返回值不等,這是因為呼叫了os.wait()的緣故,具體原因就得去了解下系統wait()的實現了。需要正確的返回值(status),只需要對返回值進行右移8位操作就可以了。
注意2:當執行命令的引數或者返回中包含了中文文字,那麼建議使用subprocess。
四、subprocess模組
運用對執行緒的控制和監控,將返回的結果賦於一變數,便於程式的處理。有豐富的引數可以進行配置,可供我們自定義的選項多,靈活性高。之前我使用os.system的時候遇到檔案描述符被子程式繼承的問題,後來透過close_fds = False 這個引數來解決的。官方文件:
1
2
3
4 |
>>>
import
subprocess >>> nowtime = subprocess.Popen(
'date'
, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) >>> print(nowtime.stdout.
read
()) 2018年 4月 8日 星期日 19時32分41秒 CST |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952502/viewspace-2942922/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python中執行系統命令常見的幾種方法Python
- 幾種作業系統mt命令比較作業系統
- ORACLE批次更新四種方法比較Oracle
- 四種在Javascript比較物件的方法JavaScript物件
- 四種Actor框架比較框架
- Linux系統執行命令方法Linux
- 執行緒等待兩種方法的喚醒的效率比較執行緒
- python執行linux命令的兩種方法PythonLinux
- python清空字典的兩種方法比較Python
- Python-呼叫執行系統命令Python
- python中執行命令的3種方法小結Python
- Java解析XML學習筆記1 – 四種方法比較JavaXML筆記
- Python 執行 Linux 作業系統命令PythonLinux作業系統
- 【Python】執行系統命令的常見用法Python
- Oracle中spool命令實現的兩種方法比較-入門Oracle
- 檢視Oracle SQL執行計劃方法比較、分析OracleSQL
- 如何使用Python執行系統命令?Python學習教程!Python
- java中四種操作xml方式的比較JavaXML
- 比較四種主要的Linux版本(轉)Linux
- Java程式執行系統命令Java
- 多執行緒-多執行緒兩種方式的圖解比較及區別執行緒圖解
- 保障爬蟲穩定執行的四種方法爬蟲
- 分割陣列的幾種方法比較陣列
- 在java中進行日期時間比較的4種方法Java
- 四種開源門戶portal軟體比較
- Python 潮流週刊#28:兩種執行緒池、四種最佳化程式的方法Python執行緒
- java 執行作業系統命令Java作業系統
- Node.js執行系統命令Node.js
- win10系統執行命令在哪裡,win10電腦開啟執行命令的方法Win10
- 在 Ruby 中執行 Shell 命令的 6 種方法
- 六種用ruby呼叫執行shell命令的方法
- 去除csdn廣告的方法,多種方法比較總結
- 比較無語的系統
- 選用哪種免費OA辦公系統比較放心?
- 各種不同檔案系統的比較,資訊很詳細
- 各種無線接入系統比較分析的準則(轉)
- 自學Linux命令的四種方法Linux
- 在 Windows 中執行 Linux 命令的 4 種方法WindowsLinux