从 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)
我有一个 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)