In Python, we can extract the file extension using two approaches. Let’s take a look at each of these with examples.
The os module has extensive functions for interacting with the operating system. The OS module can be used to easily create, modify, delete, and fetch file contents or directories.
splitext() will take the path as an argument and return the tuple with filename and extension.
import os # returns tuple wit filename and extension file_details = os.path.splitext('/home/usr/sample.txt') print("File Details ",file_details) # extract the file name and extension file_name = file_details file_extension = file_details print("File Name: ", file_name) print("File Extension: ", file_extension)
File Details ('/home/usr/sample', '.txt') File Name: /home/usr/sample File Extension: .txt
pathlib module comes as a standard utility module in Python and offers classes representing filesystem paths with semantics appropriate for different operating systems.
pathlib.path().suffix method can be used to extract the extension of the given file path.
import pathlib # pathlib function which returns the file extension file_extension = pathlib.Path('/home/usr/sample.txt').suffix print("The given File Extension is : ", file_extension)
The given File Extension is : .txt
What if your extension is like *
sample.tar.gz * with multiple dots, and if you use the above methods, you will only get the last part of the extension, not the full extension.
You can use the
pathlib module with
suffixes property which returns all the extensions as a list. Using that, we can join into a single string, as shown below.
import pathlib # pathlib function which returns the file extension file_extension = pathlib.Path('/home/usr/sample.tar.gz').suffixes print("File extension ", file_extension) print("The given File Extension is : ", ''.join(file_extension))
File extension ['.tar', '.gz'] The given File Extension is : .tar.gz