Вероятно, есть более элегантный способ сделать это, так как я не слишком знаком с glob, но я думаю, что вы получите то, о чем вы просите.
import glob
exclude_pattern = ['folder1']
file_list = glob.glob('./files/**/*', recursive=True)
for pattern in exclude_pattern:
exclude_patternmatch = list(filter(lambda x: pattern in x, file_list))
for item in exclude_patternmatch:
file_list.remove(item)
print(file_list)
вывод:
['./files/file6.js', './files/file5.js', './files/folder2/file3.js', './files/folder2/file4.js']