Python – List files in directory with extension

23 Aug, 2021
In this article, we will discuss different use cases where we want to list the files with their extensions present in a directory using python.
os: The OS module in Python provides functions for interacting with the operating system.
glob: In Python, the glob module is used to retrieve files/pathnames matching a specified pattern. The pattern rules of glob follow standard Unix path expansion rules. It is also predicted that according to benchmarks it is faster than other methods to match pathnames in directories.
Directory Structure Root View
Directory Files Visual Representation
This module provides a portable way of using operating system-dependent functionality. The method os.listdir() lists all the files present in a directory. We can make use of os.walk() if we want to work with sub-directories as well.
Syntax:
 os.listdir(path = ‘.’)
Returns a list containing the names of the entries in the directory given by path. 
Syntax:
 os.walk(top, topdown=True, onerror=None, followlinks=False)
Generates the file names in a directory tree by walking the tree either top-down or bottom-up.
Example 1: List the files and directories present in root/home/project
Python
import os  # To get directories as well as files present# in a pathlist_1 = os.listdir(path=r"root/home/project")print(list_1)  # To get only files present in a pathlist_2 = os.listdir(path=r"root/home/project")  # Loop through each value in the list_2for val in list_2:        # Remove the value from list_2 if the "." is     # not present in value    if "." not in val:        list_2.remove(val)print(list_2)
Output :
['documents', 'code', 'charter.xlsx', 'timeline.jpg']
['charter.xlsx', 'timeline.jpg']
Example 2: List all the subdirectories and sub-files present in root/home/project
Python
import os  all_files = list()all_dirs = list()  # Iterate for each dict object in os.walk()for root, dirs, files in os.walk("root/home/project"):    # Add the files list to the the all_files list    all_files.extend(files)    # Add the dirs list to the all_dirs list    all_dirs.extend(dirs)  print(all_files)print(all_dirs)
Output:
[‘charter.xlsx’, ‘timeline.jpg’, ‘report.txt’, ‘workbook.pdf’, ‘trigger.sql’, ‘schema_template.py’, ‘sqlalchemy_models.py’, ‘info.log’, ‘README.md’, ‘requirements.txt’, ‘main.py’]
[‘documents’, ‘code’, ‘database_models’] 
The glob module finds all the pathnames matching a specified pattern according to the rules used by the Unix shell. We will use glob.glob() function to achieve our task. The idea behind Unix shell-like means that we can provide Unix shell-like patterns for searching files.
Syntax:
 glob.glob(pathname, *, recursive=False)
Return a list of pathnames that match pathname, which must be a string containing a path specification.
The ‘*‘ means that it will match all the items returned by similar to os.listdir() method.
Example 1: Get all the directories and files in root/home/project/code
Python
import glob  list_ = glob.glob(r"root/home/project/code/*")  print(list_)
Output:
[‘database_models’, ‘README.md’, ‘requirements.txt’, ‘main.py’]
Example 2: Get all the python (.py) files in root/home/project/code/database_models
Python
import glob  list_ = glob.glob(r"root/home/project/code/database_models/*.py")  print(list_)
Output:
[‘schema_template.py’, ‘sqlalchemy_models.py’]
Picked
Python directory-program
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Install PIP on Windows ?
Python Classes and Objects
Python | os.path.join() method
Introduction To PYTHON
Python OOPs Concepts
How to drop one or multiple columns in Pandas Dataframe
How To Convert Python Dictionary To JSON?
Check if element exists in list in Python
Python | Get unique values from a list
Create a directory in Python