python執行外部程式的常用方法小結_python

來源:互聯網
上載者:User

本文執行個體總結了python執行外部程式的常用方法。分享給大家供大家參考。具體分析如下:

在python中我們可以通過下面的方法直接調用系統命令或者外部程式,使用方便

1、os模組的execl方法

Python的execl系統方法同Unix的exec系統調用是一致的。這些方法適用於在子進程中調用外部程式的情況,因為外部程式會替換當前進程的代碼,不會返回。
也就是說,這個shell進程被佔領,將執行第一個execl的命令程式而不再返回。

2、使用os模組的system方法

system方法會建立子進程運行外部程式,方法只返回外部程式的運行結果。這個方法比較適用於外部程式沒有輸出結果的情況。比如在Ubuntu下,使用下面命令在案頭上顯示一條提示資訊。
根據我的實驗,用system方法調用的進程正常結束返回0,異常結束返回非0,而不取決於進程主函數的傳回值。

3、使用os模組的popen方法

當需要得到外部程式的輸出結果時,本方法非常有用。比如使用urllib調用Web API時,需要對得到的資料進行處理。一個使用例子如下:

cmd = "ssh search47c.cm2 \"" + query + "\""#print cmd + "<br>"output = os.popen(cmd)#對特殊字元進行轉義temp1 = output.read().replace('<','<')temp2 = temp1.replace('>', ">")temp3 = temp2.replace('\n', "<br>")print temp3.replace('/', "/")

4、使用commands模組的getoutput方法(沒用過)

這種方法同popend的區別在於popen返回的是一個檔案控制代碼,而本方法將外部程式的輸出結果當作字串返回,很多情況下用起來要更方便些。

希望本文所述對大家的Python程式設計有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.