本篇文章給大家分享的是有關使用Python如何實現執行系統命令,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
Python執行系統命令的實現方式
執行命令不需要獲取命令輸出--os.system
有時候我們只需要執行命令并不需要獲取命令的執行輸出,此時我們就可以使用os.system()實現。
os.system()是C語言system()函數的封裝,返回命令的退出狀態碼,命令執行結果輸出到標準輸出(stdout/窗口)。
使用示例如下:
import os
command = "ifconfig"
exit_code = os.system(command)
# 理論上command是一個字符串,但實際看command還是得變為字節數組
# 當命令中存在中文時可能會報編碼錯誤,此時可以自己給命令編一下碼
# exit_code = os.system(command.encode("gbk"))執行系統命令并獲取命令輸出--os.popen()
如果我們想要獲取命令的輸出os.system()是不能實現的,此時可以使用os.popen()來實現。使用示例如下:
import os command = "ifconfig" command_output = os.popen(command).readlines() print(command_output)
Python3更好的實現方式--subprocess
Python3引入了封裝程序更高的subprocess模塊。使用示例如下:
import subprocess command = "ifconfig" # 命令如果帶參數則不能直接使用字符串的形式,不然后報FileNotFoundError: [Errno 2] No such file or directory: 'ifconfig -a'等錯誤 # 此時有兩種處理辦法,一種是寫成以空格為分割的列表形式??山柚鷖hlex.split(command_line)實現自動分割 # command = ["ifconfig", "-a"] # 別一種是將shell參數置為True # completed_process_obj = subprocess.run(command, shell=True) # 當配置了stdout參數,completed_process_obj的stdout屬性就會保存命令的輸出 completed_process_obj = subprocess.run(command, stdout=subprocess.PIPE) print(completed_process_obj.stdout.decode()) # subprocess.Popen()基礎參數和run()差不多,比run()對命令進程有更強的控制能力。其也能用來獲取命令輸出 # popen_obj = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True) # print(popen_obj.stdout.readlines()) # 其他如subprocess.call()、subprocess.check_call()、subprocess.check_output()都是舊方法了,Python3.5+都建議用run()
以上就是使用Python如何實現執行系統命令,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。