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 に答える