我有一个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()
(见这里)和其他一些不成功的尝试。
因为根据你的回答,你使用的是zsh
test.py
import sys
sys.exit(12)
在你的控制台
python test.py
RC=$?
echo "Exit code $RC"
program_to_send $RC
这是一个脚本问题,而不是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了,谢谢
这应该通过捕获异常和使用logger来正确地完成。
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)