从 Python 获取退出状态代码,例如0 或 1

Get exit status code from Python, e.g. 0 or 1

我有一个 Python 脚本,它会执行一些操作,并根据结果以代码 0(好)或 1(不好)退出。

我想捕获这个结果,将它存储到一个变量中并通过 UDP 发送它。这不能在 Python 脚本(要求)中完成。

假设我的脚本是这样的:

import sys
# Do some stuff
sys.exit(0) # or sys.exit(1)

我 运行 和 python script.py

如何获取此退出状态代码(0 或 1)?

我尝试回显 $errorlevel,但它只打印了一个空行。我也尝试使用 exit(0) 而不是 sys.exit()(参见 here)和其他一些不成功的尝试。

这是一个脚本问题,不是 Python 问题,但在 Bash shell 中你使用 $? 并且由于任何命令都会更改 $?,保存副本通常是个好主意。

python script.py
RC=$?

echo $RC
[ $RC == 0 ] && echo Success || echo Failed
# Replace above lines by whatever you need to send $RC via UDP ...

如果是 Windows CMD 脚本问题,您应该使用适当的标签重新发布。 (我不再做 Windows,谢谢 。)

因为根据您的回答,您正在使用 zsh

test.py

import sys
sys.exit(12)

在您的控制台中

python test.py
RC=$?
echo "Exit code $RC"
program_to_send $RC

这应该通过捕获异常和使用记录器以正确的方式完成。

import logging, time

logging.basicConfig(level=logging.DEBUG, filename='/path/to/file/errorlog.log')

try:
    #MySQL Connection
except MySQLdb.Error as e:
    errortime = time.strftime('%Y-%m-%dT%H:%M:%S')
    logging.exception(errortime)
    raise os._exit(0)