静かなる名辞

pythonとプログラミングのこと

2019/03/22:TechAcademyがteratailの質問・回答を盗用していた件
2019/03/26:TechAcademy盗用事件 公式発表と深まる疑念



【python】windowsではopenの引数にフォルダを指定するとPermissionErrorになる

 最近はじめて知った仕様なのですが、windowsではタイトルの通りになります。

 Linuxの場合。

$ mkdir hoge
$ python
>>> open("hoge")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IsADirectoryError: [Errno 21] Is a directory: 'hoge'

 大変わかりやすいエラーが出てくれます。hogeはディレクトリだからファイルとしてopenできない。当たり前です。

 windowsで同じことをやると、

>mkdir hoge
>python
>>> open("hoge")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
PermissionError: [Errno 13] Permission denied: 'hoge'

 なんですか、このPermissionError: [Errno 13]というエラーは。これを見て最初に思うのは「なんか権限設定ミスったかな」ということですが、さにあらず。うっかりディレクトリをファイルとしてopenしようとしてしまっているのです。

 windowsを中心に使う人は覚えておきましょう。