如何在这段代码中包含文件名错误处理?

时间:2019-03-14 21:46:50

标签: python error-handling

当用户输入文件名时,我必须包括某种形式的错误处理,这样,如果他们输入的文件名不在程序目录中,它将显示一条错误消息。这是当前的代码:

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行,在           对于文件中的行:       NameError:未定义名称“文件”

我知道可能有一个非常简单的解决方案,但我正在竭尽全力。

1 个答案:

答案 0 :(得分: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

您遇到的第二个问题是作用域-filetry中的局部变量,您在作用域之外调用它。