根据不同的扩展模式过滤文件名

时间:2018-04-27 05:18:03

标签: python

我有一个python应用程序,我在其中定义了一些带扩展的工具。

extList = ["*pdf","*.cod","*log*","*.log.*"]

现在如何根据这些扩展名返回文件。

我使用了endWith()字符串方法来匹配扩展名,但它不会遵循模式。

extList = ["*pdf","*.cod","*log*","*.log.*"]

if os.path.isfile(unicode(path)):
    if unicode(path).endswith(tuple(extList)):
         print("match")

如何编写regEx以匹配单个RegEx中的以下模式? 请建议RegEx。

如何将RegEx写入匹配文件扩展名模式,如下所示: -

*.pdf
*.pdf*
*.pdf.*
*.pdf*.*

1 个答案:

答案 0 :(得分:1)

你想要的是fnmatch模块而不是glob: 例如:

import glob

extList = ["*pdf","*.cod","*log*","*.log.*"]
any(fnmatch.fnmatch(path, ext) for ext in extList)

测试:

>>> any(fnmatch.fnmatch(u'test.pdf', ext) for ext in extList)
True
>>> any(fnmatch.fnmatch(u'test.zip', ext) for ext in extList)
False