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