用于Perforce文件规范通配符的Python glob

时间:2012-05-07 23:44:18

标签: python perforce

我需要扩展包含Perforce通配符的文件规范。我需要这个用于磁盘上的本地文件(不在Perforce软件仓库中)。

也就是说,我需要像标准Python glob.glob()这样的东西,它也能理解Perforce通配符“......”。例如:

>>> from p4glob import p4glob        # The module I wish I had
>>> p4glob('....xml')
['a.xml', 'dir/b.xml', 'x/y/z/c.xml']

有人有一个可以做到这一点的模块吗?

2 个答案:

答案 0 :(得分:1)

只需使用os.walk并过滤即可。

import os

def p4glob(ext, startdir='.'):
    for root, dirs, files in os.walk(startdir):
        for f in files:
            # whatever filter params you need. e.g:
            if f.endswith(ext):
                yield os.path.join(root, f)
                # or append to an output list if you dont want a generator

# usage
[i for i in p4glob(".xml")]

答案 1 :(得分:0)

此外,如果您拥有最新版本的Perforce,则可以使用等效于p4 status ....xml的P4Python执行此操作。