Python OS Module
last modified February 15, 2025
In this article, we show how to use the os
module in Python. The
os
module provides a way of interacting with the operating system,
allowing you to perform tasks such as file and directory manipulation,
environment variable management, and process management.
The os
module is particularly useful for tasks like navigating the
file system, creating and deleting files, and working with environment
variables.
Navigating the File System
The following example demonstrates how to use the os
module to
navigate the file system.
import os # Get the current working directory current_directory = os.getcwd() print("Current Directory:", current_directory) # Change the current working directory os.chdir('/tmp') print("Changed Directory:", os.getcwd()) # List files and directories in the current directory print("Files and Directories:", os.listdir())
In this program, the os.getcwd
function is used to get the current
working directory, os.chdir
is used to change the directory, and
os.listdir
is used to list files and directories.
Working with Files and Directories
The following example demonstrates how to create, rename, and delete files and
directories using the os
module.
import os # Create a new directory os.mkdir('new_directory') print("Directory Created:", 'new_directory') # Rename the directory os.rename('new_directory', 'renamed_directory') print("Directory Renamed:", 'renamed_directory') # Create a new file with open('new_file.txt', 'w') as f: f.write('Hello, World!') print("File Created:", 'new_file.txt') # Delete the file os.remove('new_file.txt') print("File Deleted:", 'new_file.txt') # Delete the directory os.rmdir('renamed_directory') print("Directory Deleted:", 'renamed_directory')
In this program, the os.mkdir
function is used to create a
directory, os.rename
is used to rename it, os.remove
is used to delete a file, and os.rmdir
is used to delete a
directory.
$ python main.py Directory Created: new_directory Directory Renamed: renamed_directory File Created: new_file.txt File Deleted: new_file.txt Directory Deleted: renamed_directory
Environment Variables
The following example demonstrates how to work with environment variables using
the os
module.
import os # Get the value of an environment variable home_directory = os.getenv('HOME') print("Home Directory:", home_directory) # Set a new environment variable os.environ['MY_VAR'] = 'my_value' print("MY_VAR:", os.getenv('MY_VAR')) # List all environment variables print("Environment Variables:", os.environ)
In this program, the os.getenv
function is used to retrieve the
value of an environment variable, os.environ
is used to set a new
environment variable, and os.environ
is also used to list all
environment variables.
Running System Commands
The following example demonstrates how to run system commands using the
os
module.
import os # Run a system command os.system('ls -l')
In this program, the os.system
function is used to execute the
ls -l
command, which lists files and directories in the current
directory.
Path Manipulation with os.path
The following example demonstrates how to manipulate file paths using the
os.path
submodule.
import os # Join path components path = os.path.join('/home', 'user', 'documents', 'file.txt') print("Joined Path:", path) # Get the basename of the path basename = os.path.basename(path) print("Basename:", basename) # Get the directory name of the path dirname = os.path.dirname(path) print("Dirname:", dirname) # Check if the path exists exists = os.path.exists(path) print("Path Exists:", exists)
In this program, the os.path.join
function is used to join path
components, os.path.basename
is used to get the basename of the
path, os.path.dirname
is used to get the directory name, and
os.path.exists
is used to check if the path exists.
Rename a File with os.rename
The following example demonstrates how to rename a file using the os.rename
function and check if the file exists using os.path.exists
.
import os # Specify the file name file_name = 'myfile.txt' # Check if the file exists if os.path.exists(file_name): # Rename the file os.rename('myfile.txt', 'myfile2.txt') print("File renamed successfully.") else: print('Failed to rename file: File does not exist.')
In this program, the os.path.exists
function is used to check if
the file exists, and os.rename
is used to rename the file if it
exists. If the file does not exist, an appropriate message is displayed.
$ python main.py File renamed successfully.
If the file does not exist, the program will output:
$ python main.py Failed to rename file: File does not exist.
List Directory with os.listdir
The following example demonstrates how to list the contents of a directory using
the os.listdir
function.
import os # List all entries in the current directory content = os.listdir('.') print("Directory Contents:", content)
In this program, the os.listdir
function is used to list all
entries in the current directory. The list includes files and directories but
excludes special entries like '.'
and '..'
.
List Directory with os.scandir
The following example demonstrates how to list the contents of a directory using the os.scandir
function, which provides additional information such as file attributes.
import os from datetime import datetime # Specify the directory path path = '.' # Use scandir to list entries with additional info with os.scandir(path) as it: for entry in it: print(f'{entry.name} - Created: {datetime.fromtimestamp(entry.stat().st_ctime)}')
In this program, the os.scandir
function is used to list entries in
the current directory along with their creation time. The
entry.stat
method provides file metadata, such as creation time
(st_ctime
).
Traverse Directory with os.walk
The following example demonstrates how to traverse a directory recursively using
the os.walk
function. This function generates the file names and
directory names in a directory tree by walking either top-down or bottom-up.
import os # Traverse the directory tree starting from the current directory for root, dirs, files in os.walk(os.path.abspath(".")): # Print all files in the current directory for name in files: print(os.path.join(root, name)) # Print all subdirectories in the current directory for name in dirs: print(os.path.join(root, name))
In this program, the os.walk
function is used to traverse the
directory tree starting from the current directory. For each directory, it lists
all files and subdirectories, printing their full paths using
os.path.join
.
The os.walk
function is particularly useful for recursively
processing files and directories in a directory tree.
Source
Python OS Module - Documentation
In this article, we have shown how to use the os
module for
interacting with the operating system in Python.
Author
List all Python tutorials.