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!
相關文章
- 執行緒基本知識點執行緒
- shell相關知識點
- shell知識點小結2
- shell知識點小結1
- 執行緒池知識點詳解執行緒
- 建立執行緒知識點總結執行緒
- Python程式與執行緒知識Python執行緒
- python中pandas的知識點整理Python
- 多執行緒基礎知識點梳理執行緒
- Thread執行緒知識點講解thread執行緒
- JAVA執行緒中的安全知識Java執行緒
- Python 中不易懂的小知識點Python
- Java常見知識點彙總(⑬)——執行緒Java執行緒
- 三、執行緒池知識點整理筆記執行緒筆記
- 多執行緒(三)、執行緒池 ThreadPoolExecutor 知識點總結執行緒thread
- Python知識點(二)Python
- Python知識點(一)Python
- Java常見知識點彙總(⑭)——執行緒池Java執行緒
- shell基本知識
- 初識python必知的6個知識點Python
- Python常用知識點一二Python
- 多執行緒基礎必要知識點!看了學習多執行緒事半功倍執行緒
- Java知識點總結(動態執行JS程式碼 )JavaJS
- 知識點①:springboot使用外部 tomcat 執行配置Spring BootTomcat
- 多執行緒程式設計的基礎知識點執行緒程式設計
- Shell相關知識
- Python基礎入門知識點——Python中的異常Python
- Java多執行緒學習(五)執行緒間通訊知識點補充Java執行緒
- C++知識點:對於多執行緒的總結C++執行緒
- Python基礎知識點梳理Python
- Python小知識點隨筆Python
- Python爬蟲知識點二Python爬蟲
- Python爬蟲知識點一Python爬蟲
- python字典--知識點總結Python
- python知識點記錄_01Python
- python知識點記錄_03Python
- Python中關於Thread的一點小知識Pythonthread
- 前置知識—程式和執行緒執行緒