@Monitorz_Killah

Как обойти ограничение вложенности директорий с кириллицей в путях библиотекой pathlib на python?

На общем локальном сервере есть директория пользователя, в ней есть рабочая папка, в которой лежит целевая папка, с содержимым которой предстоит работать. Для простоты назовем ее "Корневая папка" проекта.

В свою очередь, в Корневой папке лежат папки с именами разделов вида:
1 Ремонт оборудования такого-то типа
2 Ремонт оборудования другого типа
и т.д.

В этих папках есть разного уровня вложенность. Т.е. в папке 1 могут сразу лежать файлы для обработки, а в папке 2 могут быть еще папки и т.д.

Все это прописано на кириллице с пробелами. Т.е. вид полного абсолютного пути может выглядеть так:

G :\Папка пользователя\Рабочая папка\Корневая папка\1 Ремонт оборудования такого-то типа\Файл.тхт

или так:
G :\Папка пользователя\Рабочая папка\Корневая папка\1 Ремонт оборудования такого-то типа\Подраздел номер один\Файл номер один.тхт

Проблема состоит в том, что ни модуль OS, ни модуль Pathlib (который приоритетен для использования) не могут адекватно работать с кириллицей в путях ниже первого уровня вложенности.

Тестовый код вида:
from pathlib import Path

p = Path(__file__).resolve()

print(p)


при обработке пути G:\Python_Projects\python\папка новая свежая\pathfinder.py проходит.

А вот с G:\Python_Projects\python\папка новая свежая\папка внутри\pathfinder.py
уже вызывает ошибку с "проглатыванием" первых символов имен директорий:
can't open file 'g:\\Python_Projects\\python\\апка новая свежая\\апка внутри\\pathfinder.py': [Errno 2] No such file or directory

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

Собственно, вопрос: Можно ли как-то обойти это ограничение, и нормально обрабатывать пути с кириллицей и глубокими уровнями вложенности?

Реализация происходит под win10x64, если это имеет значение.
  • Вопрос задан
  • 150 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы