Как удалить файлы с определенным именем в нескольких папках? Python

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

Понял только как удалить определенный файл, а как несколько нет(

import os

path = "C:/Archive/01-10-2021"
a = 'AL010.xlsm'        # Нужно удалить AL010, M_4613,SG010, и др. при том, что существуют другие файлы начинающиеся с AL*,M_*,SG*
for i in os.listdir(path):
    if a in i:
        full_file_path = os.path.join(path, a)
        os.remove(full_file_path)

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

Автор решения: gil9red

Я бы сделал через glob (позволит задать шаблон), используя pathlib.

Пример:

from pathlib import Path

path = Path('C:/Archive/01-10-2021')
for file_name in path.glob('AL*.xlsm'):
    file_name.unlink()

Если поиск нужно сделать в папках с неопределенной вложенностью, то вместо glob использовать rglob, тогда поиск файла будет от текущей папки в path и в вложенных папках

→ Ссылка