新聞中心
subprocess模塊調(diào)用Shell命令。Python調(diào)用Shell命令

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比鶴崗網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式鶴崗網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋鶴崗地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。
在Python中,我們可以使用subprocess模塊來(lái)調(diào)用Shell命令,這個(gè)模塊提供了一種簡(jiǎn)單的方法來(lái)執(zhí)行外部命令,并與命令的輸出進(jìn)行交互,下面是一個(gè)簡(jiǎn)單的示例,展示了如何在Python中調(diào)用Shell命令:
import subprocess
執(zhí)行Shell命令
result = subprocess.run(['ls', '-l'], capture_output=True)
獲取命令的輸出
output = result.stdout.decode('utf-8')
print(output)
在這個(gè)例子中,我們使用了subprocess.run()函數(shù)來(lái)執(zhí)行Shell命令ls -l。capture_output=True參數(shù)表示我們希望捕獲命令的輸出,以便后續(xù)處理。result.stdout屬性包含了命令的標(biāo)準(zhǔn)輸出,我們使用decode()方法將字節(jié)串轉(zhuǎn)換為字符串,然后打印輸出結(jié)果。
除了subprocess.run()函數(shù)外,subprocess模塊還提供了其他一些函數(shù)來(lái)執(zhí)行不同類型的命令,下面是一些常用的函數(shù):
1、subprocess.check_output():執(zhí)行命令并返回標(biāo)準(zhǔn)輸出,如果命令執(zhí)行失敗,會(huì)拋出CalledProcessError異常。
2、subprocess.check_call():執(zhí)行命令并等待其完成,如果命令執(zhí)行失敗,會(huì)拋出CalledProcessError異常。
3、subprocess.Popen():創(chuàng)建一個(gè)新的進(jìn)程來(lái)執(zhí)行命令,可以用于控制子進(jìn)程的輸入、輸出和錯(cuò)誤流。
4、subprocess.PIPE、subprocess.STDOUT、subprocess.PIPE等常量:用于指定命令的輸入、輸出和錯(cuò)誤流。
下面是一個(gè)使用subprocess.Popen()函數(shù)的例子:
import subprocess
創(chuàng)建一個(gè)新的進(jìn)程來(lái)執(zhí)行命令,并捕獲其標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出
process = subprocess.Popen(['ls', '-l'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
從標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出中讀取數(shù)據(jù)
stdout_data, stderr_data = process.communicate()
將字節(jié)串轉(zhuǎn)換為字符串,并打印輸出結(jié)果和錯(cuò)誤信息
print("標(biāo)準(zhǔn)輸出:", stdout_data.decode('utf-8'))
print("錯(cuò)誤輸出:", stderr_data.decode('utf-8'))
在這個(gè)例子中,我們使用subprocess.Popen()函數(shù)創(chuàng)建了一個(gè)新的進(jìn)程來(lái)執(zhí)行ls -l命令,通過(guò)設(shè)置stdin=subprocess.PIPE,我們告訴子進(jìn)程我們不會(huì)向其發(fā)送任何輸入數(shù)據(jù),通過(guò)設(shè)置stdout=subprocess.PIPE和stderr=subprocess.PIPE,我們告訴子進(jìn)程我們希望捕獲其標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出,我們使用communicate()方法從子進(jìn)程的標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出中讀取數(shù)據(jù),并將其轉(zhuǎn)換為字符串進(jìn)行打印。
總結(jié)一下,Python提供了多種方法來(lái)調(diào)用Shell命令,包括使用subprocess.run()函數(shù)和subprocess.Popen()函數(shù)等,這些方法可以幫助我們?cè)赑ython程序中執(zhí)行外部命令,并與命令的輸出進(jìn)行交互。
網(wǎng)站標(biāo)題:python中調(diào)用shell命令
網(wǎng)頁(yè)地址:http://m.fisionsoft.com.cn/article/dpsooeo.html


咨詢
建站咨詢
