エラー辞典

NotADirectoryError

フォルダ(ディレクトリ)ではなく、ファイルをフォルダとして扱おうとしたときに発生するエラーです。IsADirectoryErrorの逆のパターンです。

原因

指定したパスがすでに通常のファイルであるにもかかわらず、その中に別のファイルを作ろうとするなど、フォルダ扱いしてしまうことが原因です。

エラーになるコード例

import os
with open('data.txt', 'w') as f:
    f.write('test')
os.listdir('data.txt')
NotADirectoryError: [Errno 20] Not a directory: 'data.txt'

修正版

import os
path = 'data.txt'
if os.path.isdir(path):
    print(os.listdir(path))
else:
    print('これはフォルダではありません')

よくある間違い

  • ファイルパスとフォルダパスを変数名の勘違いなどで取り違えてしまう
  • os.path.isdir()での事前チェックを省略してしまう

← エラー辞典に戻る