Почему не удаляются квадратные скобки в Python, что с кодом не так?

Данный код удаляет ненужные файлы, и и ненужный текст с имени файла. Так вот, удаление файлов по шаблону работает хорошо, удаление текста по шаблону тоже, но вот как только в имени файла появляются квадратные скобки которые нужно удали вместе с содержимым, скрипт сразу перестает работать. Как с этим бороться? Заранее всею ответивших благодарю!) В примере ниже видно, что просто abc удалится, а вот [abc], не хочет удаляться, я читал про экранирование тут на форуме, перепробовал несколько вариантов, но ничего не помогло(

# Имена файлов, подлежащих удалению.
FILES_FOR_DELETE = [
    'Этот файл нужно удалить.txt', 
]

# Имена файлов подлежащих переименованию.
# Примеры:
#   abc*      : 'abc 123.txt' => '123.txt'
FILES_FOR_RENAME = [
    'abc*',
    '[abc]*'
]

BASE_PATH = '.'

# ======================================================================

import re
from pathlib import Path
from argparse import ArgumentParser

class DeleteAction:
    def __init__(self) -> None:
        self.removed_files = []

    def process(self, file: Path) -> None:
        if file.is_file() and file.name in FILES_FOR_DELETE: 
            file.unlink(missing_ok=True) 
            self.removed_files.append(file)

    def print_result(self) -> None:
        print('Удалённые файлы:', *self.removed_files, sep='\n')

class RenameAction:
    def __init__(self) -> None:
        self.renamed_files = []
        self.patterns = [re.sub(r'\*', r'(.*)', pattern) for pattern in FILES_FOR_RENAME]

    def process(self, file: Path) -> None:
        if not file.is_file():
            return
        
        for p in self.patterns:
            name, dot, extension = file.name.partition('.')
            match = re.fullmatch(p, name)
            if match is not None:
                new_file = file.replace(file.with_name(''.join(match.groups()).strip() + dot + extension))
                self.renamed_files.append((file, new_file))

    def print_result(self) -> None:
        print('Переименованные файлы:', *[str(old) + ' => ' + str(new) for old, new in self.renamed_files], sep='\n')


parser = ArgumentParser()
parser.add_argument("-d", "--no-delete", dest="no_delete", default=False, action='store_true', help="Не удалять файлы")
parser.add_argument("-r", "--no-rename", dest="no_rename", default=False, action='store_true', help="Не переименовывать файлы")
args = parser.parse_args()

actions = []
if not args.no_delete:
    actions.append(DeleteAction())
if not args.no_rename:
    actions.append(RenameAction())

for file in Path(BASE_PATH).rglob('*'):
    for action in actions:
        action.process(file)

for action in actions:
    action.print_result()
    print()

Ответы (0 шт):