Python: FileNotFoundError, из вывода glob полный путь к файлу правильный

Я ненавижу публиковать еще один вопрос о FileNotFoundError, но большинство из них, которые я вижу, касаются того, чтобы не указывать полный путь к файлу, это не моя проблема.

У меня есть несколько файлов журналов в папках в ../../Data/. Я создаю группу из этих файлов, используя

DataFiles = glob('../../Data/2021*/*.log')

Я хочу открыть каждый файл в этом глобусе, поэтому использую

      for i, file in enumerate(DataFiles):
    with open(file, "r") as f:
...

и т.д. 99% из них открываются правильно, а остальная часть кода выполняется. Почему-то некоторые не пойдут. Я получаю сообщение об ошибке

      FileNotFoundError: [Errno 2] No such file or directory: '../../Data\\20210629_081706\\20210629_081706_data.log'

Файл определенно существует, поэтому его нашел glob. Используется полный путь. А также,

      from pathlib import Path
Path('../../Data\\20210629_081706\\20210629_081706_data.log')

возвращается

      WindowsPath('../../Data/20210629_081706/20210629_081706_data.log')

Так кто-нибудь знает, что здесь может происходить?

1 ответ

Немного поздно, но у меня была такая же ошибка при использовании glob в сетевой папке со многими уровнями.

Была определенная папка, в которой некоторые файлы вызывали эту ошибку, и эти файлы даже не могли быть открыты самим проводником:

В моем случае это было вызвано длиной пути более 260 символов.

Вы можете попробовать что-то вроде предложенного здесь , чтобы разрешить обработку файлов с большими путями, или просто убедитесь, что путь достаточно короткий, чтобы проводник мог его обработать.

Другие вопросы по тегам