python正则表达式os路径

时间:2012-03-03 20:13:37

标签: python regex path operating-system find

我正在尝试查找遵循以下模式的目录以及位于其中的mbojava的任何实例:

/v/mybooks.com/ 不断变化的某些人 / mbo(有或没有进行'c [1-9]')/

我也希望避免使用点后面的名字,例如mbo而不是mbo.prev mboc3而不是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 个答案:

答案 0 :(得分:6)

不要使用os / re。使用glob.glob作为执行此操作的方法。

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