import os
import glob
for filename in glob.iglob('DirA/**/*.txt', recursive=True):
os.remove(filename)
for filename in glob.iglob('DirA/**/*.sh', recursive=True):
os.remove(filename)
Это должно работать для рекурсивного удаления всех txt и sh файлов в каталоге.
Или, если вы хотите указать массив с шаблонами:
import os
import glob
def removeAll(pathToDir, patterns):
for pattern in patterns:
for filename in glob.iglob(pathToDir + '/**/' + pattern, recursive=True):
os.remove(filename)
patterns = ['*.txt', '*.sh']
removeAll('DirA', patterns)