Python Regex OS Path - PullRequest
       24

Python Regex OS Path

0 голосов
/ 04 марта 2012

Я пытаюсь найти каталоги, которые следуют шаблону ниже, и любые экземпляры mbojava, которые находятся в пределах:

/ v / mybooks.com / Somethign, который постоянно меняется / mbo (с или без продолжения 'c [1-9]') /

Я также хотел бы избежать имен, которые следуют за точкой, например, mbo not mbo.prev mboc3 not mboc3.broken и т. Д.

Пока у меня есть следующее:

regex = re.compile("\/mbo(c[1-9])?\/"
mbojava = False
for root, dirs, names in os.walk("/v/mybooks.com/"):
   if 'mbojava' in names and regex.search(root):
      mbojava =  os.path.join(root, 'mbojava')
      print mbojava

Результат:

Я получаю только одну строку, когда точно знаю, что существует несколько каталогов, которые следуют указанному выше шаблону.

1 Ответ

6 голосов
/ 04 марта 2012

Не используйте os / re.Используйте glob.glob как способ сделать это.

import glob
paths = glob.glob(r'/v/mybooks.com/*/mbo[1-9]')
...