2012-03-03 132 views
0

我试图发现,按照下面的方式驻留在该目录和mbojava的任何实例:蟒蛇正则表达式OS路径

/v/mybooks.com/ somethign是不断变化/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 

结果:

我只得到一个行,当我确知有遵循上述模式的多个目录。

+0

结果:语法错误 – kindall 2012-03-03 20:59:22

回答

4

不要使用os/re。使用glob.glob作为它的方式。

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