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

标签 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())))

然后我得到以下错误:

line 28, in for lines in file: NameError: name 'file' is not defined

我知道可能有一个非常简单的解决方案,但我正在努力解决这个问题。

最佳答案

你应该在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 中的局部变量,您在范围之外调用它。

关于python - 如何在这段代码中包含文件名错误处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55172524/

相关文章:

Python:文件写入仅在 Linux 上添加无意的换行符

javascript - 如何处理 ETIMEDOUT 错误?

node.js - 我该如何解决 npm 错误! js错误:0909006C:PEM in Node.?

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

asp.net - 部署到 IIS 7.5 后出现空白自定义 404 页面

python - 根据 pandas 中每列的条件进行按列值替换

python - 如何从 Django 模型(覆盖) save( ) 函数向 View 发送警报或消息?

python - 使用 Django 将数据发布到另一个站点

python - 如何在 apscheduler 作业中从类中调用函数?

javascript - 如果1分钟内未收到响应(NodeJ),如何返回错误