fnmatch - Unix filename pattern matching in Python Last Updated : 22 Nov, 2020 Summarize Comments Improve Suggest changes Share Like Article Like Report This module is used for matching Unix shell-style wildcards. fnmatch() compares a single file name against a pattern and returns TRUE if they match else returns FALSE. The comparison is case-sensitive when the operating system uses a case-sensitive file system. The special characters and their functions used in shell-style wildcards are : '*' - matches everything '?' - matches any single character '[seq]' - matches any character in seq '[!seq]' - matches any character not in seq The meta-characters should be wrapped in brackets for a literal match. For example, '[?]' matches the character '?'. Functions provided by the fnmatch module fnmatch.fnmatch(filename, pattern): This function tests whether the given filename string matches the pattern string and returns a boolean value. If the operating system is case-insensitive, then both parameters will be normalized to all lower-case or upper-case before the comparison is performed. Example: Script to search all files starting with 'fnmatch' and ending in '.py' Python3 # 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)) Output : $ 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(filename, pattern): This function performs the case sensitive comparison and tests whether the given filename string matches the pattern string and returns a boolean value. Example: Script for a case-sensitive comparison, regardless of the filesystem and operating system settings. Python3 # 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))) Output : $ 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(names, pattern): This function returns the subset of the list of names passed in the function that match the given pattern. Example: Filter files by more than one file extension. Python3 # 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)) Output : $ 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(pattern): This function returns the shell-style pattern converted to a regular expression for using with re.match() (re.match() will only match at the beginning of the string and not at the beginning of each line). Python3 # 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')) Output : '(?s:.*\\.txt)\\Z' _sre.SRE_Match object; span=(0, 10), match='foobar.txt' Comment More infoAdvertise with us Next Article fnmatch - Unix filename pattern matching in Python A ADITI GUPTA 2 Improve Article Tags : Python Practice Tags : python Similar Reads Find path to the given file using Python We can get the location (path) of the running script file .py with __file__. __file__ is useful for reading other files and it gives the current location of the running file. It differs in versions. In Python 3.8 and earlier, __file__ returns the path specified when executing the Python command. We 5 min read re.fullmatch() function in Python re.fullmatch() returns a match object if and only if the entire string matches the pattern. Otherwise, it will return None. The flag at the end is optional and can be used to ignore cases etc. Syntax: re.fullmatch(pattern, string, flags=0) Parameters: pattern: the regular expression pattern that you 1 min read Importing Multiple Files in Python Here, we have a task to import multiple files from a folder in Python and print the result. In this article, we will see how to import multiple files from a folder in Python using different methods. Import Multiple Files From a Folder in PythonBelow, are the methods of importing multiple files from 2 min read Get filename from path without extension using Python Getting a filename from Python using a path is a complex process. i.e, In Linux or Mac OS, use "/" as separators of the directory while Windows uses "\" for separating the directories inside the path. So to avoid these problems we will use some built-in package in Python.File Structure: Understandin 3 min read Python | os.path.supports_unicode_filenames object OS module in Python provides functions for interacting with the operating system. OS comes under Pythonâs standard utility modules. This module provides a portable way of using operating system dependent functionality. os.path module is sub module of OS module in Python used for common path name man 1 min read Like