“/bin/bash”subprocess.check_output 无法抛出异常
"/bin/bash" subprocess.check_output not able to throw exception
如果命令抛出异常,将 subprocess.check_output 与默认可执行文件一起使用会给我 CalledProcessError
异常。
但是在 executable="/bin/bash"
的情况下,即使命令抛出异常,它也不会抛出 CalledProcessError
异常。
有时这个 test.py 文件会抛出异常,因此得到 CalledProcessError
(预期行为)。
command = "python3 test.py |& tee test_output.txt"
out = str(
subprocess.check_output(
command,
executable="/bin/bash",
shell=True,
stderr=subprocess.STDOUT,
)
)
请告诉我如何在“/bin/bash”可执行文件的情况下获得 CalledProcessError
异常。
经过 2-3 天的努力后找到了答案,现在发布它,以便它可以帮助其他人。
由于命令中的管道,我没有收到引发的异常
python 脚本 test.py
命令应该是:
command = "set -o pipefail; python3 test.py |& tee test_output.txt"
如果命令抛出异常,将 subprocess.check_output 与默认可执行文件一起使用会给我 CalledProcessError
异常。
但是在 executable="/bin/bash"
的情况下,即使命令抛出异常,它也不会抛出 CalledProcessError
异常。
有时这个 test.py 文件会抛出异常,因此得到 CalledProcessError
(预期行为)。
command = "python3 test.py |& tee test_output.txt"
out = str(
subprocess.check_output(
command,
executable="/bin/bash",
shell=True,
stderr=subprocess.STDOUT,
)
)
请告诉我如何在“/bin/bash”可执行文件的情况下获得 CalledProcessError
异常。
经过 2-3 天的努力后找到了答案,现在发布它,以便它可以帮助其他人。
由于命令中的管道,我没有收到引发的异常
python 脚本 test.py
命令应该是:
command = "set -o pipefail; python3 test.py |& tee test_output.txt"