我有一个脚本,提示用户输入(要打开的文件的)文件名,如果当前目录中不存在该文件,则会再次提示用户。这是简短的版本:
file = input("Type filename: ")
...
try:
fileContent = open(filename, "r")
...
except FileNotFoundError:
...
当我在我的 MacOS X 上用 Python 3.3x 测试我的脚本时,当我故意输入错误的文件名时它工作得非常好(它在“预期”下执行套件)。
但是,当我想在 Windows 计算机上使用 Python 3.2x 运行我的代码时,我收到一条错误消息,指出未定义“FileNotFoundError”。因此,Windows 上的 Python 3.2 认为“FileNotFoundError”是一个变量,程序会因错误而退出。
我发现如果输入文件名无效,Windows 上的 Python 3.2 会抛出“IOError”。我在我的 Linux 机器上用 Python 2.7 对其进行了测试,它也是一个 IOError。
我现在的问题是,代码与
except "FileNotFoundError":
不会在 Windows 的 Python 3.2 上运行,但如果我将其更改为
except "IOError":
它不再适用于我的 Mac。
我怎么能解决它?我能想到的唯一方法是使用
except
我通常不想要的 just 。