Puede reemplazar cada carácter alfabético c con [cC], a través de
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)))
Utilice expresiones regulares que no distingan entre mayúsculas y minúsculas en lugar de patrones globales. fnmatch.translate
genera una expresión regular a partir de un patrón global, por lo que
re.compile(fnmatch.translate(pattern), re.IGNORECASE)
le brinda una versión que no distingue entre mayúsculas y minúsculas de un patrón global como un RE compilado.
Tenga en cuenta que, si el sistema de archivos está alojado en una caja de Linux en un sistema de archivos similar a Unix, los usuarios podrán crear archivos foo
, Foo
y FOO
en el mismo directorio.