GNU/Linux >> Tutoriels Linux >  >> Linux

Ignorer la casse dans glob() sous Linux

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.


Linux
  1. 4 alternatives à cron sous Linux

  2. Au revoir, Journal Linux

  3. Qu'est-ce qu'un utilisateur Linux ?

  4. linux bash, chaîne de casse camel à séparer par un tiret

  5. Linux :système de fichiers insensible à la casse

Créer une minuterie sous Linux

Commande W sous Linux

À la commande sous Linux

Cas curieux des noms de code de distribution Linux

Que faire en cas de panique du noyau Linux

Linux contre Unix