python執(zhí)行外部程序的常用方法小結(jié)
本文實(shí)例總結(jié)了python執(zhí)行外部程序的常用方法。分享給大家供大家參考。具體分析如下:
在python中我們可以通過下面的方法直接調(diào)用系統(tǒng)命令或者外部程序,使用方便
1、os模塊的execl方法
Python的execl系統(tǒng)方法同Unix的exec系統(tǒng)調(diào)用是一致的。這些方法適用于在子進(jìn)程中調(diào)用外部程序的情況,因?yàn)橥獠砍绦驎鎿Q當(dāng)前進(jìn)程的代碼,不會返回。
也就是說,這個shell進(jìn)程被占領(lǐng),將執(zhí)行第一個execl的命令程序而不再返回。
2、使用os模塊的system方法
system方法會創(chuàng)建子進(jìn)程運(yùn)行外部程序,方法只返回外部程序的運(yùn)行結(jié)果。這個方法比較適用于外部程序沒有輸出結(jié)果的情況。比如在Ubuntu下,使用下面命令在桌面上顯示一條提示信息。
根據(jù)我的實(shí)驗(yàn),用system方法調(diào)用的進(jìn)程正常結(jié)束返回0,異常結(jié)束返回非0,而不取決于進(jìn)程主函數(shù)的返回值。
3、使用os模塊的popen方法
當(dāng)需要得到外部程序的輸出結(jié)果時,本方法非常有用。比如使用urllib調(diào)用Web API時,需要對得到的數(shù)據(jù)進(jìn)行處理。一個使用例子如下:
cmd = "ssh search47c.cm2 \"" + query + "\"" #print cmd + "<br>" output = os.popen(cmd) #對特殊字符進(jìn)行轉(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è)計(jì)有所幫助。
- Python 讀取用戶指令和格式化打印實(shí)現(xiàn)解析
- 如何安裝并使用conda指令管理python環(huán)境
- python執(zhí)行CMD指令,并獲取返回的方法
- Python3之外部文件調(diào)用Django程序操作model等文件實(shí)現(xiàn)方式
- 談?wù)凱ython:為什么類中的私有屬性可以在外部賦值并訪問
- Python如何調(diào)用外部系統(tǒng)命令
- 詳解python函數(shù)的閉包問題(內(nèi)部函數(shù)與外部函數(shù)詳述)
- python 函數(shù)內(nèi)部修改外部變量的方法
- python3 打開外部程序及關(guān)閉的示例
- Python常用外部指令執(zhí)行代碼實(shí)例
相關(guān)文章
opencv+圖像處理(Image Processing in OpenCV)
這篇文章主要介紹了opencv+圖像處理(Image Processing in OpenCV) 4-0改變顏色空間,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04Tensorflow深度學(xué)習(xí)使用CNN分類英文文本
這篇文章主要為大家介紹了Tensorflow深度學(xué)習(xí)CNN實(shí)現(xiàn)英文文本分類示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11Python如何實(shí)現(xiàn)Excel的最合適列寬(openpyxl)
這篇文章主要介紹了Python如何實(shí)現(xiàn)Excel的最合適列寬(openpyxl),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02pygame.display.flip()和pygame.display.update()的區(qū)別及說明
這篇文章主要介紹了pygame.display.flip()和pygame.display.update()的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03