Este módulo se utiliza para hacer coincidir los comodines de estilo shell de Unix. fnmatch() compara un solo nombre de archivo con un patrón y devuelve VERDADERO si coinciden; de lo contrario, devuelve FALSO.
La comparación distingue entre mayúsculas y minúsculas cuando el sistema operativo utiliza un sistema de archivos que distingue entre mayúsculas y minúsculas.
Los caracteres especiales y sus funciones que se utilizan en los comodines estilo shell son:
- ‘*’ – coincide con todo
- ‘?’ – coincide con cualquier carácter individual
- ‘[seq]’: coincide con cualquier carácter en seq
- ‘[!seq]’: coincide con cualquier carácter que no esté en la secuencia
Los metacaracteres deben estar entre corchetes para una coincidencia literal. Por ejemplo, ‘[?]’ coincide con el carácter ‘?’.
Funciones proporcionadas por el módulo fnmatch
- fnmatch.fnmatch(nombre de archivo, patrón) : esta función comprueba si la string de nombre de archivo dada coincide con la string de patrón y devuelve un valor booleano. Si el sistema operativo no distingue entre mayúsculas y minúsculas, ambos parámetros se normalizarán a minúsculas o mayúsculas antes de realizar la comparación.
Ejemplo: secuencia de comandos para buscar todos los archivos que comienzan con ‘fnmatch’ y terminan en ‘.py’
# Python program to illustrate
# fnmatch.fnmatch(filename, pattern)
import
fnmatch
import
os
pattern
=
'fnmatch_*.py'
print
(
'Pattern :'
, pattern )
print
()
files
=
os.listdir(
'.'
)
for
name
in
files:
print
(
'Filename: %-25s %s'
%
(name, fnmatch.fnmatch(name, pattern))
Producción :
$python fnmatch_fnmatch.py Pattern : fnmatch_*.py Filename: __init__.py False Filename: fnmatch_filter.py True Filename: fnmatch_fnmatch.py True Filename: fnmatch_fnmatchcase.py True Filename: fnmatch_translate.py True Filename: index.rst False
- fnmatch.fnmatchcase(nombre de archivo, patrón): esta función realiza la comparación entre mayúsculas y minúsculas y prueba si la string de nombre de archivo dada coincide con la string de patrón y devuelve un valor booleano.
Ejemplo: secuencia de comandos para una comparación que distingue entre mayúsculas y minúsculas, independientemente de la configuración del sistema de archivos y del sistema operativo.
# Python program to illustrate
# fnmatch.fnmatchcase(filename, pattern)
import
fnmatch
import
os
pattern
=
'FNMATCH_*.PY'
print
(
'Pattern :'
, pattern)
print
()
files
=
os.listdir(
'.'
)
for
name
in
files:
(
print
'Filename: %-25s %s'
%
(name, fnmatch.fnmatchcase(name, pattern)))
Producción :
$python fnmatch_fnmatchcase.py Pattern : FNMATCH_*.PY Filename: __init__.py False Filename: fnmatch_filter.py False Filename: FNMATCH_FNMATCH.PY True Filename: fnmatch_fnmatchcase.py False Filename: fnmatch_translate.py False Filename: index.rst False
- fnmatch.filter(nombres, patrón): esta función devuelve el subconjunto de la lista de nombres pasados en la función que coinciden con el patrón dado.
Ejemplo: filtrar archivos por más de una extensión de archivo.
# Python program to illustrate
# fnmatch.filter(names, pattern)
import
fnmatch
import
os
pattern
=
'fnmatch_*.py'
print
(
'Pattern :'
, pattern )
files
=
os.listdir(
'.'
)
print
(
'Files :'
, files)
print
(
'Matches :'
, fnmatch.
filter
(files, pattern))
Producción :
$python fnmatch_filter.py Pattern : fnmatch_*.py Files : ['__init__.py', 'fnmatch_filter.py', 'fnmatch_fnmatch.py', 'fnmatch_fnmatchcase.py', 'fnmatch_translate.py', 'index.rst'] Matches : ['fnmatch_filter.py', 'fnmatch_fnmatch.py', 'fnmatch_fnmatchcase.py', 'fnmatch_translate.py']
- fnmatch.translate(patrón): esta función devuelve el patrón de estilo shell convertido en una expresión regular para usar con re.match() (re.match() solo coincidirá al principio de la string y no al principio de cada línea).
# Python program to illustrate
# fnmatch.translate(pattern)
import
fnmatch, re
regex
=
fnmatch.translate(
'*.txt'
)
reobj
=
re.
compile
(regex)
print
(regex)
print
(reobj.match(
'foobar.txt'
))
Producción :
'(?s:.*\\.txt)\\Z' _sre.SRE_Match object; span=(0, 10), match='foobar.txt'
Este artículo es una contribución de Aditi Gupta . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA