pathlib Path.rglob завершается ошибкой на длинных файловых путях в Windows - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь вернуть список всех файлов и подпапок в определенном месте.Мой код выглядит следующим образом:

from pathlib import Path
FOLDER_PATH = Path(r'C:\long\file\path\of\138\characters\')

Я получаю сообщение об ошибке: FileNotFoundError: [WinError 3] The system cannot find the path specified:

Ошибка возникает в пути к папке, а не в файле, поэтому я не уверен, что это можетбыть причиной.

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

Точно так же, когда я пытаюсь открыть файл XLSX, я получаю «Этот файл недоступен. Попробуйте одно из следующих действий: (убедитесь, что он существует, не только для чтения, неболее 218 символов и т. д.) "

Путь к файлам в этой папке определенно превышает 218 символов, что, как я понимаю, может быть проблемой для Excel, но я не понимаю, почему это может быть проблемойдля pathlib.Path.rglob, чтобы перечислить их, кто-нибудь понимает это?

Однако, если я использую CMD (dir /s /b > files.txt), я могу получить список.

Дополнительно, если язатем импортируйте files.txt в список Path объектов, paths, в python и попробуйте сделать [x.is_file() for x in paths], он не будет правильно идентифицировать некоторые из более длинных путей как файлы.

Я проверилчто если я скопирую каталог локально (где существует гораздо более короткий путь), файлы будут доступны в Excel и pathlib.Path.rglob.

Что можно сделать, чтобы обойти эту проблему, и почему это проблема впервое место?

...