6

glob.glob()是区分大小写的。
是否有任何简单的方法可以在 Python 中查找具有特定不区分大小写扩展名的文件。

4

2 回答 2

13

fnmatch模块提供了比glob模块更多的模式匹配控制:

>>> import os
>>> from fnmatch import filter
>>> filter(os.listdir('.'), '*.[Pp][Yy]')

您还可以使用os.listdir()后跟正则表达式匹配:

>>> import os, re
>>> [filename for filename in os.listdir('.') 
              if re.search(r'\.py$', filename, re.IGNORECASE)]
于 2013-03-27T05:44:18.497 回答
6

这应该可以解决问题:

import os
import glob

def find_case_insensitve(dirname, extensions):
    for filename in glob.glob(dirname):
        base, ext = os.path.splitext(filename)
        if ext.lower() in extensions:
            print filename


find_case_insensitve('/home/anthon/Desktop/*', ['.jpeg', '.png', '.jpg'])

不要忘记以小写形式指定扩展名列表。

于 2013-03-27T05:52:01.583 回答