次の行:
except (IOError, PermissionError, FileNotFoundError) as e:
Python 2.75 で実行すると、次のエラー メッセージが表示されます。
NameError: global name 'PermissionError' is not defined
しかし、python 3.3 ではすべて正常に動作します。
考え/提案?
次の行:
except (IOError, PermissionError, FileNotFoundError) as e:
Python 2.75 で実行すると、次のエラー メッセージが表示されます。
NameError: global name 'PermissionError' is not defined
しかし、python 3.3 ではすべて正常に動作します。
考え/提案?
Python 2.7 にはありませんでしPermissionError
たが、Python 3.3 ストリームでPEP 3151で導入されました。2.7 の例外のリストについては、こちらを参照してください。
PEP 3151 は、OS および I/O 関連の例外の例外階層をクリーンアップする試みでした。
それ以前は、 をキャッチOSError
してチェックerrno
するEPERM
か、またはIOError
をチェックするerrno
のと同等だったと思いますEACCES
。
Python 3.3 以降で実行しているかどうかをいつでも確認できます。そうでない場合は、独自の PermissionError を作成します。もちろん、それは決してスローされないため、上記の 2 つの可能性もキャッチする必要があります。