如何读取 sys.exit() 返回的值并将其存储在变量中

Posted

技术标签:

【中文标题】如何读取 sys.exit() 返回的值并将其存储在变量中【英文标题】:how to read the value returned by sys.exit() and store it in a variable 【发布时间】:2015-12-09 09:19:05 【问题描述】:

我有一个最后带有sys.exit(0)sys.exit(-1) 的python 脚本(0 或1,取决于是否发生错误)。如何将此 0 或 1 存储在变量中?例如,在环境变量中或在 perl 脚本使用的变量中

【问题讨论】:

【参考方案1】:

如果您在普通 shell 中运行您的 python 代码,您将拥有 $? 变量:

   $ python yourscript.py
   $ echo $?  # this will echo the sys.exit value

这在你的 perl 脚本中也是有效的:

 system("python yourscript.py");

 if ($? == -1) 
        print "failed to execute: $!\n";
    
    elsif ($? & 127) 
        printf "child died with signal %d, %s coredump\n",
        ($? & 127),  ($? & 128) ? 'with' : 'without';
    
    else 
        printf "child exited with value %d\n", $? >> 8;
    

【讨论】:

【参考方案2】:

如果您在 Windows 中,请使用 %ERRORLEVEL%:

CMDPROMPT>python
Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win 32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.exit(-1)
CMDPROMPT>echo %ERRORLEVEL%
-1
CMDPROMPT>python
Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)]     on win 32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.exit(0)
CMDPROMPT>echo %ERRORLEVEL%
0
CMDPROMPT>

【讨论】:

以上是关于如何读取 sys.exit() 返回的值并将其存储在变量中的主要内容,如果未能解决你的问题,请参考以下文章

sys模块

sys模块

sys模块

sys模块

如何分离从表行中获取的值并将其存储在雪花中的数组中

sys模块