Vous pouvez remplacer chaque caractère alphabétique c par [cC], via
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)))
Utilisez des expressions régulières insensibles à la casse au lieu de modèles glob. fnmatch.translate
génère une regex à partir d'un modèle glob, donc
re.compile(fnmatch.translate(pattern), re.IGNORECASE)
vous donne une version insensible à la casse d'un modèle glob en tant que RE compilé.
Gardez à l'esprit que, si le système de fichiers est hébergé par une machine Linux sur un système de fichiers de type Unix, les utilisateurs pourront créer des fichiers foo
, Foo
et FOO
dans le même répertoire.