python執(zhí)行外部程序的常用方法小結(jié)
本文實例總結(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ù)進行處理。一個使用例子如下:
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 讀取用戶指令和格式化打印實現(xiàn)解析
- 如何安裝并使用conda指令管理python環(huán)境
- python執(zhí)行CMD指令,并獲取返回的方法
- Python3之外部文件調(diào)用Django程序操作model等文件實現(xiàn)方式
- 談?wù)凱ython:為什么類中的私有屬性可以在外部賦值并訪問
- Python如何調(diào)用外部系統(tǒng)命令
- 詳解python函數(shù)的閉包問題(內(nèi)部函數(shù)與外部函數(shù)詳述)
- python 函數(shù)內(nèi)部修改外部變量的方法
- python3 打開外部程序及關(guān)閉的示例
- Python常用外部指令執(zhí)行代碼實例
相關(guān)文章
Python使用Matplotlib庫創(chuàng)建3D 圖形和交互式圖形詳解
Matplotlib 是 Python 中最重要的數(shù)據(jù)可視化庫之一,在本文中,我們將深入研究 Matplotlib 的高級特性,特別是如何創(chuàng)建 3D 圖形和交互式圖形,需要的朋友可以參考下2023-07-07
通過Py2exe將自己的python程序打包成.exe/.app的方法
這篇文章主要介紹了通過Py2exe將自己的python程序打包成.exe/.app的方法,需要的朋友可以參考下2018-05-05
python實現(xiàn)支持目錄FTP上傳下載文件的方法
這篇文章主要介紹了python實現(xiàn)支持目錄FTP上傳下載文件的方法,適用于windows及Linux平臺FTP傳輸文件及文件夾,需要的朋友可以參考下2015-06-06
Python可變參數(shù)*args和**kwargs用法實例小結(jié)
這篇文章主要介紹了Python可變參數(shù)*args和**kwargs用法,結(jié)合實例形式總結(jié)分析了Python中可變參數(shù)*args和**kwargs的功能、區(qū)別與具體使用技巧,需要的朋友可以參考下2018-04-04
Python中super().__init__()測試以及理解
__init__()一般用來創(chuàng)建對象的實例變量,或一次性操作,super()用于調(diào)用父類的方法,可用來解決多重繼承問題,下面這篇文章主要給大家介紹了關(guān)于Python中super().__init__()測試及理解的相關(guān)資料,需要的朋友可以參考下2021-12-12

