使用python subprocess.run处理异常
我是Python新手。我需要从subprocess.run捕获所有错误/异常 目前,我有一个Python文件,其中包含subprocess.run(shell脚本))[运行shell脚本] 我需要捕捉这个过程中的所有异常 我尝试将“异常作为e:print(e)”排除,但看不到所有错误。根据文档,您可以按如下方式处理异常:使用python subprocess.run处理异常,python,databricks,Python,Databricks,我是Python新手。我需要从subprocess.run捕获所有错误/异常 目前,我有一个Python文件,其中包含subprocess.run(shell脚本))[运行shell脚本] 我需要捕捉这个过程中的所有异常 我尝试将“异常作为e:print(e)”排除,但看不到所有错误。根据文档,您可以按如下方式处理异常: try: subprocess.run(...) except subprocess.CalledProcessError as e: print e.outp
try:
subprocess.run(...)
except subprocess.CalledProcessError as e:
print e.output
像这样使用check_returncode():
#!/usr/bin/env python3
import subprocess
try:
ls = subprocess.run( ("ls", "-w"), stdout=subprocess.PIPE, stderr=subprocess.PIPE )
ls.check_returncode()
except subprocess.CalledProcessError as e:
print ( "Error:\nreturn code: ", e.returncode, "\nOutput: ", e.stderr.decode("utf-8") )
raise
print ( ls.stdout.decode("utf-8") )
它运行“ls-w”,返回一个错误(-w需要一个参数),触发异常处理,打印返回代码和stderr输出,并重新引发异常。如果改为使用“ls-l”进行尝试,它将成功运行命令并打印其输出