在Python中執(zhí)行Shell腳本有以下幾種方法:
os.system()
函數(shù):這個(gè)函數(shù)可以執(zhí)行shell命令,并返回命令的返回值。例如:import os
os.system('ls -l')
subprocess.run()
函數(shù):這個(gè)函數(shù)可以執(zhí)行shell命令,并返回一個(gè)CompletedProcess
對(duì)象,其中包含命令的返回值、輸出和錯(cuò)誤輸出。例如:import subprocess
result = subprocess.run('ls -l', shell=True)
print(result.returncode) # 返回值
print(result.stdout) # 輸出
print(result.stderr) # 錯(cuò)誤輸出
subprocess.Popen()
函數(shù):這個(gè)函數(shù)可以執(zhí)行shell命令,并返回一個(gè)Popen
對(duì)象,可以通過(guò)該對(duì)象的方法獲取命令的返回值、輸出和錯(cuò)誤輸出。例如:import subprocess
proc = subprocess.Popen('ls -l', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = proc.communicate()
print(proc.returncode) # 返回值
print(stdout) # 輸出
print(stderr) # 錯(cuò)誤輸出
os.popen()
函數(shù):這個(gè)函數(shù)可以執(zhí)行shell命令,并返回一個(gè)文件對(duì)象,可以通過(guò)該對(duì)象讀取命令的輸出。例如:import os
output = os.popen('ls -l').read()
print(output)
這些方法可以根據(jù)具體的需求選擇使用,其中subprocess.run()
和subprocess.Popen()
函數(shù)更加強(qiáng)大靈活,可以更好地處理命令的輸入、輸出和錯(cuò)誤輸出。