不懂Python執(zhí)行系統(tǒng)命令的方法?其實(shí)想解決這個(gè)問(wèn)題也不難,下面讓小編帶著大家一起學(xué)習(xí)怎么去解決,希望大家閱讀完這篇文章后大所收獲。
忻府ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
一、os.system方法
在子終端運(yùn)行系統(tǒng)命令,可以獲取命令執(zhí)行后的返回信息以及執(zhí)行返回的狀態(tài)。執(zhí)行后返回兩行結(jié)果,第一行是結(jié)果, 第二行是執(zhí)行狀態(tài)信息,如果命令成功執(zhí)行,這條語(yǔ)句返回0,否則返回1。
import os print(os.system('date'))
由于python3默認(rèn)采用了UTF-8編碼,而WIN8的CMD窗口采用的是GBK編碼,導(dǎo)致了編碼不同。
但是,如果簡(jiǎn)單的通過(guò)encode('gbk')之類的方法,不能解決根本問(wèn)題。
尤其是當(dāng)我們根本不是使用print命令來(lái)輸出,而是控制臺(tái)默認(rèn)輸出的情況下,是沒(méi)辦法修改os.system的編碼格式的,因?yàn)閛s.system執(zhí)行命令返回的并不是命令中出現(xiàn)的文本,而是一個(gè)int,為0時(shí)表示成功,為1時(shí)表示異常。
Pycharm下的解決方法:
二、os.popen方法
os.popen()方法不僅執(zhí)行命令而且返回執(zhí)行后的信息對(duì)象(常用于需要獲取執(zhí)行命令后的返回信息),是通過(guò)一個(gè)管道文件將結(jié)果返回。
import os os.popen()
三、commands模塊
注意1:在類unix的系統(tǒng)下使用此方法返回的返回值(status)與腳本或命令執(zhí)行之后的返回值不等,這是因?yàn)檎{(diào)用了os.wait()的緣故,具體原因就得去了解下系統(tǒng)wait()的實(shí)現(xiàn)了。需要正確的返回值(status),只需要對(duì)返回值進(jìn)行右移8位操作就可以了。
注意2:當(dāng)執(zhí)行命令的參數(shù)或者返回中包含了中文文字,那么建議使用subprocess。
四、subprocess模塊
subprocess模塊運(yùn)用對(duì)線程的控制和監(jiān)控,將返回的結(jié)果賦于一變量,便于程序的處理。
subprocess模塊是python從2.4版本開(kāi)始引入的模塊。主要用來(lái)取代 一些舊的模塊方法,如os.system、os.spawn、os.popen、commands.*等。subprocess通過(guò)子進(jìn)程來(lái)執(zhí)行外部指令,并通過(guò)input/output/error管道,獲取子進(jìn)程的執(zhí)行的返回信息。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享Python執(zhí)行系統(tǒng)命令的方法內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!
分享名稱:Python執(zhí)行系統(tǒng)命令的方法
鏈接URL:http://jinyejixie.com/article44/gpgche.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、靜態(tài)網(wǎng)站、定制網(wǎng)站、Google、品牌網(wǎng)站設(shè)計(jì)、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)