如何获取Python脚本的正确状态消息?

时间:2017-06-05 22:12:03

标签: python

我有一部分Python脚本。将使用shell脚本调用此脚本。

try:
    sqlContext.sql("create table {}.`{}` as select * from mytempTable".format(hivedb,table))
except Exception as e:
    status = 'fail'
    error_message = e
else:  
    status = 'success'
    error_message = 'No error'
print ("{},{},{},{}".format(hivedb,table,status,error_message))

status == 'success'
sys.exit(1)

在上面的代码中,如果我使用status == 'success',我会在脚本运行时始终获得success,即使对于失败的作业也是如此。

如果我一起使用sys.exit(1)或两者,我一直都会失败。

如果status'success'时脚本执行成功,status'fail'时失败,我该怎么办?

1 个答案:

答案 0 :(得分:0)

最简单的答案是删除try / except。如果您只是进行调用,则在异常情况下,您将获得stderr的完整回溯,并且python将以非零退出状态退出。

E.g。

$ python -c "raise Exception('ha');" 1>stdout 2>stderr
$ echo $?
1
$ cat stderr
Traceback (most recent call last):
  File "<string>", line 1, in <module>
Exception: ha