filenames = set(filenames)
for filter in ignore_files:
    filenames = filenames - set(fnmatch.filter(filenames, filter))
matches.extend([os.path.join(root, fn) for fn in filenames])
Python, как реализовать что-то вроде поведения .gitignore