Python - 无法识别异常处理

时间:2018-02-01 15:11:37

标签: python python-3.x

所以我遇到异常处理问题,我正在运行Python 3.6.3。 这是我的代码:

txt = ""
txtFile = input("gimme a file.")
f = open(txtFile, "r")
try:    
    for line in f:
        cleanedLine = line.strip() 
        txt += cleanedLine
except FileNotFoundError:
    print("!")

因此,如果我尝试输入错误的错误 而不是打印!我仍然得到错误:

Traceback (most recent call last):
File "cleaner.py", line 11, in <module>
    f = open(txtFile, "r")
FileNotFoundError: [Errno 2] No such file or directory: 'nonexistentfile'

我尝试过更换OSError,我也尝试了except:,它告诉我我做错了(因为我不应该首先这样做)因为我理解except:应该捕获所有例外。

2 个答案:

答案 0 :(得分:1)

很简单,你在异常之外开了一些东西。

txt = []
txtFile = input("gimme a file.")
try:        
    f = open(txtFile, "r")
    for line in f.read().split('\n'):
        cleanedLine = line.strip()
        txt.append(cleanedLine)
except FileNotFoundError:
    print("!")

答案 1 :(得分:0)

你的try catch是通过行封装循环。

当您尝试在try块之外打开文件时发生错误。