91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python里如何打開外部程序

發布時間:2021-10-28 17:40:35 來源:億速云 閱讀:232 作者:柒染 欄目:編程語言

Python里如何打開外部程序,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

在編寫代碼中,經常會遇到在  Python程序中打開外部程序的需求,那么在Python里如何打開外部程序呢?今天我們來介紹四種不同的方式,供大家參考收藏。

使用 os.system()

os.system(command)是最簡單的一種方式,我們import os模塊,并調用它的system() 方法即可。

參考以下例子:

Python里如何打開外部程序

通過簡單兩行代碼即可在我的電腦上打開 qq程序,因為我是在MacOS 系統里,所以需要在可執行文件之前加一個open,如果是  windows只需要填寫可執行文件的絕對路徑即可。

現在我們可以調用稍微復雜一點的命令,實現在 Python中調用ping命令:

Python里如何打開外部程序

不過os.system()的缺點是無法獲取調用后的返回結果,只能通過:

os.system("ping www.baidu.com > result.txt") 這樣的方式把結果管道輸出到本地文件里。

system的返回值只會有0(成功),1和2表示失敗。

總結起來 system()一共干了三件事情:

  • 從主進程中fork一個子進程。

  • 在子進程中調用python的exec函數去執行命令。

  • 在主進程中調用wait(阻塞)等待子進程結束。

如果 對于fork失敗,system()函數返回-1。

使用 os.popen()

os.popen(command) 的調用方式和os.system()類似,不過它是通過創建一個管道的方式來fork子進程實現調用程序的。

Python里如何打開外部程序

我們可以通過讀取popen的返回對象,以便獲取執行結果。

以上代碼我們可以發現對返回對象執行read()方法即可獲取程序執行后的返回結果。

使用 subprocess.open()

subprocess這個模塊在Python用于產生子進程,可以連接子進程的標準輸入輸出,并且可以得到子進程的返回值。

以下是subprocess.Popen()模塊的參數定義:

Python里如何打開外部程序

subprocess.Popen() 的參數解釋:

Python里如何打開外部程序

以下通過subprocess.Popen() 執行tree命令,樹形結構顯示當前程序路徑下的所有文件和目錄:

Python里如何打開外部程序

Popen的參數可以是字符串(string),也可以是列表(list)。

參考兩個以下例子:

subprocess.Popen(["cat","test.md"]) subprocess.Popen("cat test.txt", shell=True)

Popen()還有更多的高級用法,歡迎參考官方文檔進行學習。

使用subprocess.call()

subporcess模塊還有一個call() 方法,可以用于更加簡單的調用外部命令。

subprocess.call (*popenargs , **kwargs )

call的使用方法和Popen基本一致,沒有太大的區別,在這里只是多介紹一種使用方式。

Python里如何打開外部程序

  • os.system()用于簡單執行命令,可以顯示執行結果。

  • os.popen()用于簡單執行命令,不能顯示執行結果,可以通過變量返回執行結果。

  • subprocess.Popen() 用于執行復雜命令,可以顯示執行結果,可以設置輸出內容。

  • subprocess.call() 用于執行復雜命令,可以顯示執行結果,可以設置輸出內容。

看完上述內容,你們掌握Python里如何打開外部程序的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

康保县| 杨浦区| 邢台市| 淮滨县| 赤壁市| 白水县| 来凤县| 策勒县| 台湾省| 通城县| 深泽县| 荆州市| 隆德县| 丰城市| 宾川县| 长宁区| 日照市| 施秉县| 宁强县| 灵丘县| 乌拉特后旗| 清远市| 阳春市| 淮滨县| 封丘县| 万盛区| 中方县| 田林县| 永安市| 铁力市| 托克逊县| 右玉县| 呼图壁县| 鹿泉市| 宾川县| 天门市| 安图县| 蒙自县| 北安市| 江北区| 奉化市|