十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
在Python中執(zhí)行shell命令,可以使用subprocess模塊。subprocess模塊允許我們啟動新的進程,連接到它們的輸入/輸出/錯誤管道,并獲取它們的返回碼,這個模塊提供了一種高級的創(chuàng)建新進程、連接到它們的輸入/輸出/錯誤管道、以及等待和獲取它們的返回值的方法。

成都創(chuàng)新互聯(lián)公司于2013年開始,先為蘭西等服務建站,蘭西等地企業(yè),進行企業(yè)商務咨詢服務。為蘭西企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
下面是一個簡單的例子,展示了如何使用subprocess模塊執(zhí)行shell命令:
import subprocess
執(zhí)行shell命令
command = "ls l"
result = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
獲取命令執(zhí)行結果
stdout = result.stdout.decode("utf8")
stderr = result.stderr.decode("utf8")
打印執(zhí)行結果
print("輸出結果:", stdout)
print("錯誤信息:", stderr)
在這個例子中,我們首先導入了subprocess模塊,我們定義了一個要執(zhí)行的shell命令(這里是ls l,用于列出當前目錄下的所有文件和文件夾),接下來,我們使用subprocess.run()函數(shù)來執(zhí)行這個命令,這個函數(shù)的第一個參數(shù)是要執(zhí)行的命令,第二個參數(shù)shell=True表示我們要在一個shell中運行這個命令,第三個參數(shù)stdout=subprocess.PIPE和第四個參數(shù)stderr=subprocess.PIPE表示我們希望捕獲命令的標準輸出和標準錯誤。
當我們調用subprocess.run()函數(shù)時,它會啟動一個新的進程來執(zhí)行我們的命令,這個進程的輸出和錯誤會被捕獲到stdout和stderr變量中,我們可以使用decode()方法將這些字節(jié)串轉換為字符串。
我們打印出命令的輸出結果和錯誤信息。
除了使用subprocess.run()函數(shù)之外,我們還可以使用其他一些函數(shù)來執(zhí)行shell命令,我們可以使用subprocess.Popen()函數(shù)來創(chuàng)建一個子進程,然后使用communicate()方法來與子進程進行交互,下面是一個使用subprocess.Popen()和communicate()的例子:
import subprocess
執(zhí)行shell命令
command = "ls l"
process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
獲取命令執(zhí)行結果
stdout, stderr = process.communicate()
打印執(zhí)行結果
print("輸出結果:", stdout.decode("utf8"))
print("錯誤信息:", stderr.decode("utf8"))
在這個例子中,我們首先導入了subprocess模塊,我們定義了一個要執(zhí)行的shell命令(同樣是ls l),接下來,我們使用subprocess.Popen()函數(shù)來創(chuàng)建一個子進程,并設置它的標準輸出和標準錯誤為管道,我們使用子進程的communicate()方法來與子進程進行交互,這個方法會等待子進程完成,并返回一個包含子進程的標準輸出和標準錯誤的元組,我們可以使用decode()方法將這些字節(jié)串轉換為字符串。
我們打印出命令的輸出結果和錯誤信息。
在Python中執(zhí)行shell命令非常簡單,只需要使用subprocess模塊提供的相應函數(shù)即可,這些函數(shù)可以幫助我們輕松地在Python程序中調用外部命令,實現(xiàn)各種功能。