新聞中心
在Python中執(zhí)行shell命令,可以使用subprocess模塊。subprocess模塊允許我們啟動新的進(jìn)程,連接到它們的輸入/輸出/錯誤管道,并獲取它們的返回碼,這個模塊提供了一種高級的創(chuàng)建新進(jìn)程、連接到它們的輸入/輸出/錯誤管道、以及等待和獲取它們的返回值的方法。

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


咨詢
建站咨詢
