Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python subprocess.run处理异常_Python_Databricks - Fatal编程技术网

使用python subprocess.run处理异常

使用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

我是Python新手。我需要从subprocess.run捕获所有错误/异常

目前,我有一个Python文件,其中包含subprocess.run(shell脚本))[运行shell脚本]

我需要捕捉这个过程中的所有异常

我尝试将“异常作为e:print(e)”排除,但看不到所有错误。

根据文档,您可以按如下方式处理异常:

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”进行尝试,它将成功运行命令并打印其输出