python中shell執行知識點
更多程式設計教程請到:菜鳥教程 https://www.piaodoo.com/
友情連結:
高州陽光論壇https://www.hnthzk.com/ 人人影視http://www.sfkyty.com/os.system
system方法會建立子程式執行外部程式,方法只返回外部程式的執行結果。這個方法比較適用於外部程式沒有輸出結果的情況。
import os os.system('ls')
commands.getstatusoutput
使用commands模組的getoutput方法,這種方法同popend的區別在於popen返回的是一個檔案控制程式碼,而本方法將外部程式的輸出結果當作字串返回,很多情況下用起來要更方便些。
主要方法:
- commands.getstatusoutput(cmd) 返回(status, output)
- commands.getoutput(cmd) 只返回輸出結果
- commands.getstatus(file) 返回ls -ld file的執行結果字串,呼叫了getoutput,不建議使用此方法
當需要得到外部程式的輸出結果時,本方法非常有用。比如使用urllib呼叫Web API時,需要對得到的資料進行處理。os.popen(cmd) 要得到命令的輸出內容,只需再呼叫下read()或readlines()等 如a=os.popen(cmd).read()
import os ls = os.popen('ls') print ls.read()
commands.getstatusoutput
使用commands模組的getoutput方法,這種方法同popend的區別在於popen返回的是一個檔案控制程式碼,而本方法將外部程式的輸出結果當作字串返回,很多情況下用起來要更方便些。
主要方法:
- commands.getstatusoutput(cmd) 返回(status, output)
- commands.getoutput(cmd) 只返回輸出結果
- commands.getstatus(file) 返回ls -ld file的執行結果字串,呼叫了getoutput,不建議使用此方法
import commands commands.getstatusoutput('ls -lt') # 返回(status, output)
subprocess.call
根據Python官方文件說明,subprocess模組用於取代上面這些模組。有一個用Python實現的並行ssh工具—mssh,程式碼很簡短,不過很有意思,它線上程中呼叫subprocess啟動子程式來幹活。
from subprocess import call call(["ls", "-l"])
import shlex, subprocess def shell_command(cmd, timeout) : data = {"rc":False, "timeout":False, "stdout":"", "stderr":""} try : process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) try: outs, errs = process.communicate(timeout=timeout) data["stdout"] = outs.decode("utf-8") data["stderr"] = errs.decode("utf-8") data["rc"] = Trueexcept subprocess.TimeoutExpired : process.kill() outs, errs = process.communicate() data["rc"] = False data["stdout"] = outs.decode("utf-8") data["stderr"] = "timeout" data["timeout"] = True
except Exception as e :
data[“rc”] = False
data[“stderr”] = e
finally :
return data
到此這篇關於python中shell執行知識點的文章就介紹到這了,更多相關python shell 執行內容請搜尋菜鳥教程www.piaodoo.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援菜鳥教程www.piaodoo.com!
相關文章
- 執行緒基本知識點執行緒
- Python程式與執行緒知識Python執行緒
- 執行緒池知識點詳解執行緒
- Thread執行緒知識點講解thread執行緒
- 建立執行緒知識點總結執行緒
- python中pandas的知識點整理Python
- 多執行緒基礎知識點梳理執行緒
- 多執行緒(三)、執行緒池 ThreadPoolExecutor 知識點總結執行緒thread
- Python 中不易懂的小知識點Python
- Python知識點(二)Python
- Python知識點(一)Python
- 三、執行緒池知識點整理筆記執行緒筆記
- Java常見知識點彙總(⑬)——執行緒Java執行緒
- shell基本知識
- 知識點:Python中的列表合併操作Python
- Java常見知識點彙總(⑭)——執行緒池Java執行緒
- 初識python必知的6個知識點Python
- Python基礎入門知識點——Python中的異常Python
- shell指令碼命令 執行python檔案&python命令列執行python程式碼指令碼Python命令列
- Python中關於Thread的一點小知識Pythonthread
- 多執行緒基礎必要知識點!看了學習多執行緒事半功倍執行緒
- Java知識點總結(動態執行JS程式碼 )JavaJS
- Shell相關知識
- python知識點記錄_01Python
- python知識點記錄_03Python
- Python基礎知識點梳理Python
- Python小知識點隨筆Python
- python裡執行shell命令或cmd命令Python
- python執行shell並獲取結果Python
- Java多執行緒學習(五)執行緒間通訊知識點補充Java執行緒
- C++知識點:對於多執行緒的總結C++執行緒
- Thread執行緒的基礎知識及常見疑惑點thread執行緒
- Android 基礎知識——執行緒Android執行緒
- 多執行緒基礎知識執行緒
- 前置知識—程式和執行緒執行緒
- Python知識點:字串格式化Python字串格式化
- Python入門知識點彙總Python
- 清明花了幾天總結了多執行緒的知識點執行緒