#python #error-handling
#python #обработка ошибок
Вопрос:
Мне требуется включить некоторую форму обработки ошибок, когда пользователь вводит имя файла таким образом, чтобы, если они ввели имя файла, которого нет в каталоге programs, тогда оно появится с сообщением об ошибке. На данный момент это код:
board = []
fileinput = input("Please enter your text file name:")
filename = fileinput ".txt"
file = open(filename, "r ")
for lines in file:
board.append(list(map(int,lines.split())))
Я не уверен, куда включить try / except, как если бы я включил его следующим образом:
board = []
fileinput = input("Please enter your text file name:")
filename = fileinput ".txt"
try:
file = open(filename, "r ")
except:
print("Error: File not found")
for lines in file:
board.append(list(map(int,lines.split())))
Затем я получаю следующую ошибку:
строка 28, для строк в файле: ошибка имени: имя ‘file’ не определено
Я знаю, что, вероятно, есть очень простое решение, но я никак не могу обдумать его.
Ответ №1:
Вы должны включить все строки, в которых может возникнуть ошибка под try
, поэтому:
board = []
fileinput = input("Please enter your text file name:")
filename = fileinput ".txt"
try:
file = open(filename, "r ")
for lines in file:
board.append(list(map(int,lines.split())))
except:
print("Error: File not found")
В представленном вами способе программа пытается игнорировать ошибку и переходит к следующему, который заканчивается NameError: name 'file' is not defined
Вторая проблема в вашем случае была бы связана с областью видимости — file
это локальная переменная в try
, и вы вызываете ее вне области видимости.