Sim*_*eth 0 python regex operating-system path find
我试图找到遵循以下模式的目录以及驻留在其中的mbojava的任何实例:
/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
Run Code Online (Sandbox Code Playgroud)
结果:
当我确定知道有多个目录遵循上述模式时,我只得到一行.
不要使用os/re.使用glob.glob作为执行此操作的方法.
import glob
paths = glob.glob(r'/v/mybooks.com/*/mbo[1-9]')
Run Code Online (Sandbox Code Playgroud)