Как реализовать что-то вроде поведения .gitignorePython

Программы на Python
Anonymous
Как реализовать что-то вроде поведения .gitignore

Сообщение Anonymous »

Мне нужно перечислить все файлы в текущем каталоге (.) (включая все подкаталоги) и исключить некоторые файлы, как работает .gitignore (http://git-scm.com/docs/gitignore)
С помощью fnmatch (https://docs.python.org/2/library/fnmatch.html) я смогу фильтровать файлы по шаблону

Код: Выделить всё

ignore_files = ['*.jpg', 'foo/', 'bar/hello*']
matches = []
for root, dirnames, filenames in os.walk('.'):
for filename in fnmatch.filter(filenames, '*'):
matches.append(os.path.join(root, filename))
Как я могу отфильтровать и получить все файлы, которые не соответствуют одному или нескольким элементам моего «ignore_files»?

Вернуться в «Python»