経由で、各アルファベット文字 c を [cC] に置き換えることができます。
import glob
def insensitive_glob(pattern):
def either(c):
return '[%s%s]' % (c.lower(), c.upper()) if c.isalpha() else c
return glob.glob(''.join(map(either, pattern)))
glob パターンの代わりに、大文字と小文字を区別しない正規表現を使用します。 fnmatch.translate
glob パターンから正規表現を生成するため、
re.compile(fnmatch.translate(pattern), re.IGNORECASE)
glob パターンの大文字と小文字を区別しないバージョンをコンパイル済み RE として提供します。
ファイルシステムが Unix ライクなファイルシステム上の Linux ボックスによってホストされている場合、ユーザーは foo
ファイルを作成できることに注意してください。 、 Foo
そして FOO
同じディレクトリにあります。