在Python中,subprocess.Popen類(lèi)可以重定向標(biāo)準(zhǔn)錯(cuò)誤流,通過(guò)參數(shù)stderr來(lái)實(shí)現(xiàn)??梢詫tderr參數(shù)設(shè)置為subprocess.PIPE來(lái)捕獲標(biāo)準(zhǔn)錯(cuò)誤流的輸出,或者將stderr參數(shù)設(shè)置為一個(gè)文件對(duì)象來(lái)將標(biāo)準(zhǔn)錯(cuò)誤流的輸出寫(xiě)入到指定的文件中。下面是一個(gè)例子:
import subprocess
# 執(zhí)行一個(gè)命令,并將標(biāo)準(zhǔn)錯(cuò)誤輸出到標(biāo)準(zhǔn)輸出中
process = subprocess.Popen(["ls", "non_existent_dir"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
output, _ = process.communicate()
print(output.decode())
# 將標(biāo)準(zhǔn)錯(cuò)誤輸出到文件中
with open("error.log", "w") as error_file:
process = subprocess.Popen(["ls", "non_existent_dir"], stderr=error_file)
process.wait()