Python’s os module provides a way of using operating system-dependent functionality. This module allows you to interact with the operating system in a portable way, offering a wide range of functionalities, from file manipulation to process management. In this article, we’ll explore the os module in detail, providing practical examples to illustrate its various uses.
Overview of the os Module
The os module in Python provides a way to interface with the underlying operating system. It includes functionalities for:
- File and directory manipulation
- Environment variable access
- Process management
- Miscellaneous operating system interfaces
To use the os module, you first need to import it:
import os
File and Directory Manipulation
Working with Directories
1. Getting the Current Working Directory
You can retrieve the current working directory using os.getcwd():
import os
current_directory = os.getcwd()
print(f"Current Working Directory: {current_directory}")
Output:

2. Changing the Current Working Directory
Use os.chdir() to change the current working directory:
import os
os.chdir('/path/to/directory')
print(f"Changed Working Directory: {os.getcwd()}")
3. Listing Directory Contents
The os.listdir() function returns a list of entries in the specified directory:

4. Creating and Removing Directories
Use os.mkdir() to create a new directory and os.rmdir() to remove it:
import os
os.mkdir('new_directory')
print(f"New Directory Created: {os.listdir('.')}")
os.rmdir('new_directory')
print(f"Directory Removed: {os.listdir('.')}")
# For removing non-empty directories, use os.removedirs()
Working with Files
1. Creating and Removing Files
Use open() to create a new file and os.remove() to delete it:
import os
with open('example_file.txt', 'w') as f:
f.write('Hello, World!')
print(f"File Created: {os.listdir('.')}")
os.remove('example_file.txt')
print(f"File Removed: {os.listdir('.')}")
# For safely creating and closing files, use context managers (with open(...))
2. Renaming and Moving Files
Use os.rename() to rename or move a file:
import os
with open('old_name.txt', 'w') as f:
f.write('Content')
os.rename('old_name.txt', 'new_name.txt')
print(f"File Renamed: {os.listdir('.')}")
os.rename('new_name.txt', 'moved_name.txt')
print(f"File Moved: {os.listdir('.')}")
3. Checking File Existence and Properties
Use os.path to check file existence and properties:
import os
file_path = 'example_file.txt'
# Checking if the file exists
file_exists = os.path.exists(file_path)
print(f"File Exists: {file_exists}")
# Getting file size
if file_exists:
file_size = os.path.getsize(file_path)
print(f"File Size: {file_size} bytes")
Environment Variables
You can access and modify environment variables using the os module.
1. Getting Environment Variables
Use os.environ to access environment variables:
import os
# Getting a specific environment variable
path = os.environ.get('PATH')
print(f"PATH: {path}")
2. Setting Environment Variables
Use os.environ to set environment variables:
import os
# Setting a new environment variable
os.environ['NEW_VAR'] = 'value'
print(f"NEW_VAR: {os.environ['NEW_VAR']}")
Process Management
The os module allows you to manage processes, including starting new processes and obtaining process IDs.
1. Getting the Current Process ID
Use os.getpid() to get the current process ID:
import os
current_pid = os.getpid()
print(f"Current Process ID: {current_pid}")
2. Forking a New Process
On Unix-based systems, you can use os.fork() to create a new process:
import os
pid = os.fork()
if pid == 0:
print("This is the child process")
else:
print("This is the parent process")
3. Executing a New Program
Use os.exec() to execute a new program, replacing the current process:
import os
# This will replace the current process with the new program
os.execl('/bin/echo', 'echo', 'Hello from the new process!')
Miscellaneous OS Interfaces
The os module includes various other interfaces for interacting with the operating system.
1. Getting Platform Information
Use os.uname() to get system information (Unix-based systems):
import os
system_info = os.uname()
print(f"System Information: {system_info}")
2. Getting the User’s Home Directory
Use os.path.expanduser() to get the path to the user’s home directory:
import os
home_directory = os.path.expanduser('~')
print(f"Home Directory: {home_directory}")
Real-Time Example: Directory Cleaner
Let’s put together some of these functionalities to create a simple directory cleaner script. This script will remove all files with a specific extension from a directory.
Example: Directory Cleaner
import os
def clean_directory(directory, extension):
for filename in os.listdir(directory):
if filename.endswith(extension):
file_path = os.path.join(directory, filename)
os.remove(file_path)
print(f"Removed {file_path}")
directory = '/path/to/directory'
extension = '.tmp'
clean_directory(directory, extension)
In this example, the clean_directory function takes a directory path and an extension, removes all files with that extension, and prints the names of the removed files.
Conclusion
The os module in Python is a versatile and powerful tool for interacting with the operating system. It provides essential functionalities for file and directory manipulation, environment variable access, process management, and other OS interfaces. By mastering the os module, you can write more efficient and portable code that seamlessly interacts with the underlying operating system. Experiment with the provided examples, explore additional functionalities, and leverage the os module to enhance your Python programming projects.





Leave a Reply