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
- 四種在Javascript比較物件的方法JavaScript物件
- Linux系統執行命令方法Linux
- Python-呼叫執行系統命令Python
- Python 執行 Linux 作業系統命令PythonLinux作業系統
- 如何使用Python執行系統命令?Python學習教程!Python
- Java程式執行系統命令Java
- Python 潮流週刊#28:兩種執行緒池、四種最佳化程式的方法Python執行緒
- 在 Ruby 中執行 Shell 命令的 6 種方法
- 在 Windows 中執行 Linux 命令的 4 種方法WindowsLinux
- 六種用ruby呼叫執行shell命令的方法
- 保障爬蟲穩定執行的四種方法爬蟲
- Node.js執行系統命令Node.js
- java 執行作業系統命令Java作業系統
- 分割陣列的幾種方法比較陣列
- 在java中進行日期時間比較的4種方法Java
- Linux系統安裝執行.AppImage檔案的兩種執行方法介紹LinuxAPP
- shell指令碼命令 執行python檔案&python命令列執行python程式碼指令碼Python命令列
- 選用哪種免費OA辦公系統比較放心?
- 比較無語的系統
- 重灌Win 10系統快人一步 教你一種比較適合小白操作的方法
- 去除csdn廣告的方法,多種方法比較總結
- 利用compareTo方法進行字串比較排序字串排序
- 如何弄清 Linux 系統執行何種系統管理程式Linux
- 使用CRM系統資料分析的四種方法
- Win10系統下以管理員身份執行cmd命令的方法Win10
- CentOS 7系統中執行yum命令失敗問題的排查方法CentOS
- 關於Python指令碼中執行adb命令的方法Python指令碼
- MATLAB數字訊號處理(1)四種經典功率譜估計方法比較Matlab
- 如何用Python呼叫系統命令呢?常用方法!Python
- 為什麼學習Python?使用哪個系統比較好?Python
- Linux 比較不同命令Linux
- python裡執行shell命令或cmd命令Python
- 執行緒建立的四種方式執行緒
- 哪些CRM管理系統比較好?CRM系統排名
- 系統執行級別及修改方法
- Linux系統下檢視mysql版本的四種方法LinuxMySql
- 比較Java Swing中三種註冊事件的方法Java事件