How do I get the parent directory in Python?

In Python, when working with files and directories, we may often need to access the parent directory of a given path, especially when navigating through a file system or managing relative paths in a project. In this article, we are going to explore the different methods available in Python to get the parent directory of the current or any specific path.

Using os Module

One of the commonly used methods to interact with the file system in Python is using the os module. This module provides various utilities to work with file paths and directories. To get the parent directory, we can use the os.path.dirname() method.

Example

Following is an example which shows how to retrieve the parent directory using the os.path.dirname() method ?

import os

# Get the current working directory
current_dir = os.getcwd()

# Get the parent directory
parent_dir = os.path.dirname(current_dir)

print("Current directory:", current_dir)
print("Parent directory:", parent_dir)
Current directory: /home/user/project
Parent directory: /home/user

Getting Parent of Specific Path

You can also get the parent directory of any specific path ?

import os

# Get parent of a specific path
file_path = "/home/user/documents/file.txt"
parent_dir = os.path.dirname(file_path)

print("File path:", file_path)
print("Parent directory:", parent_dir)
File path: /home/user/documents/file.txt
Parent directory: /home/user/documents

Using pathlib Module

The pathlib module was introduced in Python 3.4, which provides a modern and object-oriented approach to handle filesystem paths. It is a more effective and cleaner way to get the parent directory using the .parent attribute of Path object.

Example

Here is an example which shows how to use the pathlib module to get the parent directory of the current path ?

from pathlib import Path

# Get current directory as a Path object
current_dir = Path.cwd()

# Get the parent directory
parent_dir = current_dir.parent

print("Current directory:", current_dir)
print("Parent directory:", parent_dir)
Current directory: /home/user/project
Parent directory: /home/user

Multiple Parent Levels

With pathlib, you can easily access multiple parent levels ?

from pathlib import Path

file_path = Path("/home/user/documents/projects/file.txt")

print("File path:", file_path)
print("Parent (1 level):", file_path.parent)
print("Parent (2 levels):", file_path.parent.parent)
print("Parent (3 levels):", file_path.parent.parent.parent)
File path: /home/user/documents/projects/file.txt
Parent (1 level): /home/user/documents/projects
Parent (2 levels): /home/user/documents
Parent (3 levels): /home/user

Comparison

Method Module Best For Python Version
os.path.dirname() os Legacy code, compatibility All versions
Path.parent pathlib Modern code, readability 3.4+

Conclusion

Use pathlib.Path.parent for modern Python projects as it provides cleaner, more readable code. Use os.path.dirname() for legacy compatibility or when working with older Python versions.

Updated on: 2026-03-24T18:25:49+05:30

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements