Python尝试除了while循环

时间:2017-03-06 22:40:51

标签: python python-2.7

while True:
    print "Unesite ime datoteke kojoj zelite pristupiti."
    try:
        ime = raw_input("")
        printaj = open(ime, "r")
        print "Ovo su informacije ucenika %s." % (ime)
        print printaj.read()
    except:
        print "Datoteka %s ne postoji." % (ime)
    printaj.close()

该程序应该查找文件,打开并读取它(如果存在)。

所以我打开程序,尝试寻找一个文件让我们说名字“约翰”,但它不存在所以程序甚至关闭它在一个while循环。当我查找文件并且它存在时,它的信息被打印,我的程序按预期工作。

从那里我可以找到一个不存在的文件,它打印出我想要的Datoteka %s ne postoji.。 这里的问题是我在程序中查找的第一个文件名。 如果它的正确而不是好...程序将从那里起作用。

但如果错误......程序刚关闭,你必须再次打开程序。

1 个答案:

答案 0 :(得分:4)

当文件不存在时,无法打开。变量printaj未初始化。 printaj.close()导致NameError,程序崩溃。可能的解决方案:

  • printaj.close()
  • 之后,将try移至代码的printaj.read()块中
  • 使用with open(ime, "r") as printaj,它会自动关闭文件(在评论中建议)