【发布时间】:2014-03-29 17:00:51
【问题描述】:
我的代码有一点问题,主要是(我认为)try/except 部分。我的代码将生成用户选择的单词表。代码如下:
def gen_wordlist():
filename = input("Please enter the name of the wordlist: ")
try:
my_file = open(filename, 'r')
except FileNotFoundError:
retry = input("No file named "+filename+". Would you like to try again (y/n)")
if retry == 'y' or retry == 'Y':
gen_wordlist()
else:
print("Goodbye :-)")
sys.exit()
words = my_file.read()
my_file.close()
return(words.split())
words = gen_wordlist()
如果我在第一次尝试时输入了一个有效的文件名,它就会正常工作。但是,如果我输入了一个无效的文件名并选择重试,我会收到以下错误,即使我的第二次尝试肯定是一个有效的文件名:
Traceback (most recent call last):
File "TEST.py", line 20, in <module>
words = gen_wordlist()
File "TEST.py", line 15, in gen_wordlist
words = my_file.read()
UnboundLocalError: local variable 'my_file' referenced before assignment
我不知道为什么。当然,当我选择'y' 时,代码只是从gen_wordlist() 函数的开头执行,并且应该像我在第一次尝试时输入了一个有效的文件名一样工作,对吧?
【问题讨论】:
标签: python python-3.x try-catch except