Python 3.x 中如何使用subprocess模組執行外部命令
在Python中,我們經常需要執行系統命令,例如運行其他程序,執行shell命令等。 Python提供了subprocess模組,讓我們可以方便地呼叫外部命令並取得其輸出。
本篇文章將介紹如何使用Python 3.x 中的subprocess模組來執行外部指令,並提供一些範例程式碼。
下面是一個簡單的範例,示範如何使用subprocess.run()函數執行外部命令,並取得指令的輸出:
import subprocess # 执行外部命令 result = subprocess.run(['ls', '-l'], capture_output=True, text=True) # 获取命令的输出 output = result.stdout # 输出到控制台 print(output)
在上面的程式碼中,我們使用subprocess.run()函數執行了ls -l
指令。這裡我們使用了兩個參數來控制指令的執行:capture_output=True 表示將指令的輸出擷取到result物件中,text=True 表示將輸出以文字形式傳回。
下面是一個範例,示範如何使用subprocess.Popen()函數執行外部命令,並對命令的輸出進行逐行讀取:
import subprocess # 执行外部命令 process = subprocess.Popen(['ping', 'www.baidu.com'], stdout=subprocess.PIPE, text=True) # 逐行读取输出 for line in process.stdout: print(line.strip())
在上面的程式碼中,我們使用subprocess.Popen()函數執行了ping www.baidu.com
命令,並將命令的輸出透過stdout管道傳回。我們透過遍歷stdout管道逐行讀取命令的輸出,並列印到控制台。
要注意的是,當使用Popen類別執行指令時,並不會自動等待指令執行完畢。如果需要等待指令執行完畢,可以透過process.wait()函數來實現。
下面是一個範例,示範如何使用subprocess.call()函數執行外部指令,並取得指令的回傳碼:
import subprocess # 执行外部命令 return_code = subprocess.call(['git', 'clone', 'https://github.com/username/repo']) # 输出返回码 print(return_code)
在上面的程式碼中,我們使用subprocess .call()函數執行了git clone
指令,並傳遞了倉庫的位址作為參數。透過呼叫subprocess.call()函數執行指令後,會阻塞程序,直到指令執行完畢。
這裡透過return_code可以取得到指令的回傳碼,可以根據回傳碼來判斷指令是否執行成功。
總結:
透過subprocess模組,我們可以在Python中方便地執行外部指令,並取得指令的輸出和回傳碼。本篇文章介紹了三種常用的方法:subprocess.run()、subprocess.Popen()和subprocess.call()。根據不同的需求,選擇合適的方法來執行外部命令。
希望這篇文章對你了解Python 3.x 中如何使用subprocess模組執行外部指令有所幫助。
以上是Python 3.x 中如何使用subprocess模組執行外部指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!