如何从函数的if语句中退出整个程序

时间:2014-03-27 17:15:16

标签: python

我试图让我的python脚本完全从函数内部退出。调用该函数来读取文件。如果文件不存在id就像杀死一切。我曾尝试sys.exit()os_exit()。这些都没有杀死整个程序,它们似乎只是杀死它们所包含的功能。有没有办法完全杀死程序?

这是一个简单的例子来说明

def readf(file)
    try:
        slist = open(file).readlines()
        return [s.replace('\n', '') for s in slist]
except IOError as e:
    if e.errno == '2':
        print "No Such file or directory: " + servers
        sys.exit()#want to kill everything running in main
    else:
        print e

if __name__ == "__main__":
    #other functions being called at the same time as readf
    returnd = readf(file.txt)

1 个答案:

答案 0 :(得分:3)

没有杀死一个功能

你要么停止整个节目,要么就是不要。

我很确定if e.errno == '2':错误,应该是if e.errno == 2:

将数字与字符串进行比较几乎总是不正确的。

Python也是敏感的,它在第一次迭代时有各种语法错误和缩进问题,如果问题中的内容准确地代表了实际执行的代码,那么就无法信任,问题中的代码仍然存在没有正确缩进以按需执行。