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.
。
这里的问题是我在程序中查找的第一个文件名。
如果它的正确而不是好...程序将从那里起作用。
但如果错误......程序刚关闭,你必须再次打开程序。
答案 0 :(得分:4)
当文件不存在时,无法打开。变量printaj
未初始化。 printaj.close()
导致NameError
,程序崩溃。可能的解决方案:
printaj.close()
try
移至代码的printaj.read()
块中
with open(ime, "r") as printaj
,它会自动关闭文件(在评论中建议)