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