10.8. fnmatch — Filtrage par motif des noms de fichiers Unix¶
Code source : Lib/fnmatch.py
Ce module fournit la gestion des caractères de remplacement de style shell Unix, qui ne sont pas identiques à ceux utilisés dans les expressions régulières (documentés dans le module re). Les caractères spéciaux utilisés comme caractères de remplacement de style shell sont :
Motif  | 
Signification  | 
|---|---|
  | 
reconnaît n’importe quoi  | 
  | 
reconnaît n’importe quel caractère unique  | 
  | 
reconnaît n’importe quel caractère dans seq  | 
  | 
reconnaît n’importe quel caractère qui n’est pas dans seq  | 
Pour une correspondance littérale, il faut entourer le métacaractère par des crochets. Par exemple, '[?]' reconnaît le caractère '?'.
Note that the filename separator ('/' on Unix) is not special to this
module.  See module glob for pathname expansion (glob uses
filter() to match pathname segments).  Similarly, filenames starting with
a period are not special for this module, and are matched by the * and ?
patterns.
- 
fnmatch.fnmatch(filename, pattern)¶ Test whether the filename string matches the pattern string, returning
TrueorFalse. Both parameters are case-normalized usingos.path.normcase().fnmatchcase()can be used to perform a case-sensitive comparison, regardless of whether that’s standard for the operating system.Cet exemple affiche tous les noms de fichiers du répertoire courant ayant pour extension
.txt:import fnmatch import os for file in os.listdir('.'): if fnmatch.fnmatch(file, '*.txt'): print file
- 
fnmatch.fnmatchcase(filename, pattern)¶ Test whether filename matches pattern, returning
TrueorFalse; the comparison is case-sensitive and does not applyos.path.normcase().
- 
fnmatch.filter(names, pattern)¶ Renvoie un sous-ensemble de la liste names correspondant au motif pattern. Similaire à
[n for n in names if fnmatch(n, pattern)], mais implémenté plus efficacement.Nouveau dans la version 2.2.
- 
fnmatch.translate(pattern)¶ Return the shell-style pattern converted to a regular expression for using with
re.match().Exemple :
>>> import fnmatch, re >>> >>> regex = fnmatch.translate('*.txt') >>> regex '.*\\.txt\\Z(?ms)' >>> reobj = re.compile(regex) >>> reobj.match('foobar.txt') <_sre.SRE_Match object at 0x...>
Voir aussi
- Module 
glob Recherche de chemins de style shell Unix
