2016-02-29 218 views
0

脚本成功完成后,Python是否可以打印语句?
实施例的代码将是这样的:Python中退出代码0的条件语句

if 'code variable' == 0: 
    print "Script ran successfully" 
else: 
    print "There was an error" 

怎么能我的退出代码值传递给一个变量(例如“代码变量”)?
我觉得这将是一个很好的事情,包括在其他用户的脚本。
谢谢。

+0

这是你在运行脚本的环境中(例如在bash中)而不是在脚本本身中执行的操作。 – arshajii

回答

2

您可以从shell中执行此操作 - 例如,在击:

python python_code.py && echo "script exited successfully" || echo "there was an error." 

你不能有一个程序写这样的事情本身,因为它不知道它的退出代码,直到它已退出 - 此时它没有运行任何更长的时间来汇报错误 :-)。

还有其他事情可以做,以代理这种行为从过程本身:

try: 
    main() 
except SystemExit as ext: 
    if ext.code: 
     print ("Error") 
    else: 
     print ("Success") 
    raise SystemExit(ext.code) 
else: 
    print ("Success") 

然而,这并没有,如果有人使用os._exit帮助 - 我们正在追赶只是这里sys.exit,没有其他可能导致非零退出状态的异常。

+0

有没有办法在python中查找退出代码,就像退出代码为0或1或n一样,将该值赋给变量? – Bird

+0

这个解释是有道理的;它在运行时必须回头看看。 – Bird

+1

不幸的是,['sys.excepthook()'](https://docs.python.org/2/library/sys.html#sys.excepthook)不会针对'SystemExit'异常进行调用。否则,我会完全公布一个答案。 :-P(不,使用'atexit'并检查'sys.exc_info()'也没有意义)。 –

1

只要在脚本的末尾写上print,如果它的形式是从上到下直线执行。如果出现错误,python会停止脚本并且不会执行打印。不同的情况是,您使用try来管理异常。

或者让自己的runningpython script.py一个脚本try和你除了会给你比如到文件或任何你想它来存储/显示异常。

+0

这是有道理的。我正在使用这种方法,我只是不确定它是否是防呆的。 – Bird