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