How to extract and get a file name from a path in Python?

Extract filename from path in Python

Assuming that you have a variable object storing a file path, you can use the Python os.path.basename or the functions in order to obtain the file name. Use the following syntax: os.path.basename(file_path) or for Python versions from 3.4 and onward.

#1 – Read a filename from path in Python with pathlib

In our first example we’ll use the pathlib library, which was added in Python 3.4.

Assume the following file system path object:

from pathlib import Path
file_path = Path(r"C:\Temp\my_file.txt")

We can separate the filename from the path by using the name function of pathlib.Path name function:

file_name =

This will return: my_file.txt

#2 – Trim the filename from directory with the os module

Other option for extracting the filw name is using the os module:

import os
file_path  = r"C:\Temp\my_file.txt"
print (os.path.basename(file_path))

This will also return: my_file.txt

#3 – Get the file name with os.split

Another option is to extract the filename from the path using os.split. THis function returns a tuple consisting on the directory and name of the file.

import os
file_path  = r"C:\Temp\my_file.txt"
firedir, filename = os.path.split(file_path)

#4 – Get the filename without extension

In the next use case we would like to extract the file name without its fily type extension. This is easy with the Path.stem property that renders the path without the file suffix.

from pathlib import Path
file_path = Path(r"C:\Temp\my_file.txt")
file_name_no_extension = file_path.stem

Related learning

How to write a Python list object to a text file in your file system?