ユーザーが(開くファイルの)ファイル名を入力するように求められ、ファイルが現在のディレクトリに存在しない場合は、ユーザーに再度プロンプトが表示されるスクリプトがあります。これが短いバージョンです:
file = input("Type filename: ")
...
try:
fileContent = open(filename, "r")
...
except FileNotFoundError:
...
Python3.3xのMacOSXでスクリプトをテストしたとき、意図的に間違ったファイル名を入力すると、完全に正常に機能しました(「expect」の下でスイートが実行されます)。
ただし、Python 3.2xのWindowsコンピューターでコードを実行しようとすると、「FileNotFoundError」が定義されていないというエラーが表示されます。そのため、Windows上のPython 3.2は、「FileNotFoundError」が変数であると見なし、プログラムがエラーで終了します。
入力ファイル名が有効でない場合、Windows上のPython3.2が「IOError」をスローすることがわかりました。Python 2.7のLinuxマシンでテストしましたが、これもIOErrorです。
私の問題は今、
except "FileNotFoundError":
WindowsのPython3.2では実行されませんが、次のように変更すると
except "IOError":
私のMacではもう動作しません。
どうすれば回避できますか?except
私が考えることができる唯一の方法は、私が通常は欲しくない、ちょうどを使用すること
です。