Как получить расширения из шаблона glob для использования в другом путиPython

Программы на Python
Ответить
Anonymous
 Как получить расширения из шаблона glob для использования в другом пути

Сообщение Anonymous »

Проблема
Я хочу создать на Python функцию для поиска и перемещения файлов, где я могу указать шаблон в стиле glob для поиска исходных файлов, а затем второй шаблон, описывающий, куда их переместить. По сути, мне нужны группы соответствия регулярных выражений для шаблонов glob.
Пример
Например, я хотел бы иметь возможность делать что-то вроде:

Код: Выделить всё

move('./a/**/foo/**/*.json', r'./new/\2/\1/\3.txt')
Тогда, если предположить, что он нашел файл ./a/b/c/foo/bar/bat/test.json, он будет соответствовать \1, \2 и т. д. с соответствующими расширениями: И результирующий новый путь будет таким: ./new/bar/bat/b/c/test.txt.
Что я пробовал
Я знаю, что могу преобразовать шаблон glob в регулярное выражение с помощью glob.translate(), но создаваемое им регулярное выражение соответствует весь шаблон и не создает никаких групп.
Я также думал о том, чтобы попытаться заменить специальные символы в шаблоне glob эквивалентом регулярного выражения, который содержит группы совпадений, а затем сопоставить полученный шаблон с расширенным путем, который будет найден, но кажется, что в этом подходе есть много крайних случаев, которых следует опасаться, особенно с [].
Есть ли более простой способ сделать это, например, существующая библиотека?

Подробнее здесь: https://stackoverflow.com/questions/798 ... other-path
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»