成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python執(zhí)行shell命令的方法

PumpkinDylan / 3675人閱讀

摘要:執(zhí)行命令的方法模塊方式說(shuō)明這個(gè)調(diào)用相當(dāng)直接,且是同步進(jìn)行的,程序需要阻塞并等待返回。返回值是依賴于系統(tǒng)的,直接返回系統(tǒng)的調(diào)用返回值,所以和是不一樣的。并能夠獲得新建進(jìn)程運(yùn)行的返回狀態(tài)。使用模塊的目的是替代等舊的函數(shù)或模塊。

python執(zhí)行shell命令的方法 os模塊

os.system方式:

import os
os.system("top")
os.system("cat /proc/cpuinfo")

說(shuō)明

這個(gè)調(diào)用相當(dāng)直接,且是同步進(jìn)行的,程序需要阻塞并等待返回。
返回值是依賴于系統(tǒng)的,直接返回系統(tǒng)的調(diào)用返回值,所以windows和linux是不一樣的。
強(qiáng)調(diào)的一點(diǎn)是,不支持參數(shù),不支持管道

os.open方式:

import os
output = os.popen("df")
print output.read()   #如果命令自身無(wú)報(bào)錯(cuò),則返回正確的值

說(shuō)明

popen方法通過(guò)p.read()獲取終端輸出,而且popen需要關(guān)閉close().
當(dāng)執(zhí)行成功時(shí),close()不返回任何值,失敗時(shí),close()返回系統(tǒng)返回值..
可見(jiàn)它獲取返回值的方式和os.system不同
強(qiáng)調(diào)的一點(diǎn)是,不支持參數(shù),不支持管道
commands模塊

使用commands模塊的getoutput方法,這種方法同popend的區(qū)別在于popen返回的是一個(gè)文件句柄,而本方法將外部程序的輸出結(jié)果當(dāng)作字符串返回,很多情況下用起來(lái)要更方便些。
主要方法:

commands.getstatusoutput(cmd) 返回(status, output)

commands.getoutput(cmd) 只返回輸出結(jié)果

commands.getstatus(file) 返回ls -ld file的執(zhí)行結(jié)果字符串,調(diào)用了getoutput,不建議使用此方法

a = commands.getoutput("ps -ef ")
b = commands.getstatusoutput("vmstat") 
subprocess模塊

說(shuō)明

使用subprocess模塊能夠創(chuàng)建新的進(jìn)程。
能夠與新建進(jìn)程的輸入/輸出/錯(cuò)誤管道連通。
并能夠獲得新建進(jìn)程運(yùn)行的返回狀態(tài)。
使用subprocess模塊的目的是替代os.system()、os.popen()、commands.等舊的函數(shù)或模塊。

subprocess.call(["some_command","some_argument","another_argument_or_path")

from subprocess import call
call(["ls","-l","/boot","/sys"])    #
call("ls -a /",shell=True)

subprocess.Popen(command,shell=True)

subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)
參考博客

https://blog.csdn.net/longerz...

https://python.freelycode.com...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/41854.html

相關(guān)文章

  • Vim 編輯器與 Python 命令腳本

    摘要:文本編輯器編輯器的三種模式命令模式末行模式和編輯模式命令模式控制光標(biāo)移動(dòng),可對(duì)文本進(jìn)行復(fù)制粘貼刪除和查找等工作。表示從環(huán)境變量中查找解釋器的位置,再調(diào)用該路徑下的解釋器來(lái)執(zhí)行腳本。 Vim 文本編輯器 Vim 編輯器的三種模式——命令模式、末行模式和編輯模式 命令模式:控制光標(biāo)移動(dòng),可對(duì)文本進(jìn)行復(fù)制、粘貼、刪除和查找等工作。 輸入模式:正常的文本錄入。 末行模式:保存或退出文檔,以及...

    niuxiaowei111 評(píng)論0 收藏0
  • Vim 編輯器與 Python 命令腳本

    摘要:文本編輯器編輯器的三種模式命令模式末行模式和編輯模式命令模式控制光標(biāo)移動(dòng),可對(duì)文本進(jìn)行復(fù)制粘貼刪除和查找等工作。表示從環(huán)境變量中查找解釋器的位置,再調(diào)用該路徑下的解釋器來(lái)執(zhí)行腳本。 Vim 文本編輯器 Vim 編輯器的三種模式——命令模式、末行模式和編輯模式 命令模式:控制光標(biāo)移動(dòng),可對(duì)文本進(jìn)行復(fù)制、粘貼、刪除和查找等工作。 輸入模式:正常的文本錄入。 末行模式:保存或退出文檔,以及...

    bergwhite 評(píng)論0 收藏0
  • Jupyter Notebook之初識(shí)及入門(mén)

    摘要:所以,應(yīng)該直接了當(dāng)?shù)陌惭b,其中也會(huì)自動(dòng)安裝上,作為其運(yùn)行的。這只是一開(kāi)始,之后還有里各種找不到外部安裝的的情況。終于,意識(shí)到這些方法都是錯(cuò)誤的思路。這才知道原來(lái)是無(wú)法識(shí)別。 為什么要用IPython/Jupyter? python里面調(diào)試確實(shí)有點(diǎn)煩惱,尤其是在vim里,想要嘗試一些簡(jiǎn)單的編碼問(wèn)題,實(shí)在是有點(diǎn)麻煩,不想到命令行模式一行一行執(zhí)行,也不想再新建一個(gè)文件測(cè)試一個(gè)簡(jiǎn)單的功能。 而...

    plus2047 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<