- 相關(guān)推薦
python執(zhí)行外部程序的常用方法小結(jié)
文章主要介紹了python執(zhí)行外部程序的常用方法,實(shí)例總結(jié)了Python使用os模塊及commands模塊執(zhí)行外部程序的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
本文實(shí)例總結(jié)了python執(zhí)行外部程序的常用方法。分享給大家供大家參考。具體分析如下:
在python中我們可以通過(guò)下面的方法直接調(diào)用系統(tǒng)命令或者外部程序,使用方便
1、os模塊的execl方法
Python的execl系統(tǒng)方法同Unix的exec系統(tǒng)調(diào)用是一致的。這些方法適用于在子進(jìn)程中調(diào)用外部程序的情況,因?yàn)橥獠砍绦驎?huì)替換當(dāng)前進(jìn)程的代碼,不會(huì)返回。
也就是說(shuō),這個(gè)shell進(jìn)程被占領(lǐng),將執(zhí)行第一個(gè)execl的命令程序而不再返回。
2、使用os模塊的system方法
system方法會(huì)創(chuàng)建子進(jìn)程運(yùn)行外部程序,方法只返回外部程序的運(yùn)行結(jié)果。這個(gè)方法比較適用于外部程序沒(méi)有輸出結(jié)果的情況。比如在Ubuntu下,使用下面命令在桌面上顯示一條提示信息。
根據(jù)我的實(shí)驗(yàn),用system方法調(diào)用的進(jìn)程正常結(jié)束返回0,異常結(jié)束返回非0,而不取決于進(jìn)程主函數(shù)的返回值。
3、使用os模塊的popen方法
當(dāng)需要得到外部程序的輸出結(jié)果時(shí),本方法非常有用。比如使用urllib調(diào)用Web API時(shí),需要對(duì)得到的數(shù)據(jù)進(jìn)行處理。一個(gè)使用例子如下:
?
1
2
3
4
5
6
7
8
cmd = "ssh search47c.cm2 "" + query + """
#print cmd + "<br>"
output = os.popen(cmd)
#對(duì)特殊字符進(jìn)行轉(zhuǎn)義
temp1 = output.read().replace('<','<')
temp2 = temp1.replace('>', ">")
temp3 = temp2.replace('n', "<br>")
print temp3.replace('/', "/")
4、使用commands模塊的getoutput方法(沒(méi)用過(guò))
這種方法同popend的區(qū)別在于popen返回的是一個(gè)文件句柄,而本方法將外部程序的輸出結(jié)果當(dāng)作字符串返回,很多情況下用起來(lái)要更方便些。
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
【python執(zhí)行外部程序的常用方法小結(jié)】相關(guān)文章:
Python中下劃線的方法07-06
python將數(shù)據(jù)插入到mongodb的方法介紹06-01
Python中子類(lèi)怎樣調(diào)用父類(lèi)方法09-04
php調(diào)用外部shell的方法總結(jié)10-03
Python中下劃線的使用方法10-02
php防盜鏈的常用方法小結(jié)08-24
Python獲取IP地址的三種方法09-29
分析Python中下劃線的使用方法10-10