Intro to Python os
Module
The Python os
module makes it easy to interact with the operating system. It provides functions to manage files, directories, environment variables, and file paths. By simplifying system-level tasks, it helps developers write code that works across different platforms, making it ideal for handling system operations.
File Handling
The os
module simplifies file operations such as checking if a file exists, renaming, and deleting files.
- Check if a File Exists
Before performing any operations on a file, itβs often useful to verify its existence using os.path.exists()
:
import os
if os.path.exists("example.txt"):
print("File exists")
else:
print("File does not exist")
- Rename a File
To rename or move a file, you can use os.rename(old_name, new_name)
:
os.rename("oldname.txt", "newname.txt")
print("File renamed successfully")
- Delete a File
When a file is no longer needed, you can remove it using os.remove()
:
os.remove("example.txt")
print("File deleted")
Working with Directories
Managing directories is a core part of many file-handling operations. The os
module provides functions to create, remove, and navigate directories.
- Get the Current Working Directory
current_directory = os.getcwd()
print("Current Directory:", current_directory)
- Change the Current Working Directory
os.chdir("/path/to/new/directory")
print("Changed Directory:", os.getcwd())
- List Files and Directories
files = os.listdir(".")
print("Files and Directories:", files)
- Create Directories
os.mkdir("new_folder") # Single directory
os.makedirs("nested/folder/structure") # Nested directories
print("Directories created")
- Remove Directories
os.rmdir("new_folder") # Remove a single directory
os.removedirs("nested/folder/structure") # Remove nested directories
print("Directories removed")
Path manipulation
File path manipulation is an essential part of dealing with files and directories. The os.path
submodule provides tools for working with file paths cross-platform.
- Join File Paths
full_path = os.path.join("/home/user", "documents", "file.txt")
print("Full Path:", full_path)
- Split File Paths
directory, filename = os.path.split("/home/user/documents/file.txt")
print("Directory:", directory)
print("Filename:", filename)
- Get File Extensions
filename, ext = os.path.splitext("file.txt")
print("File Extension:", ext)
Environment Variables
Environment variables allow scripts to access configuration settings, such as system paths or API keys. The os
module makes it easy to get, set, and remove these variables.
- Access Environment Variables
path_var = os.environ.get("PATH")
print("PATH environment variable:", path_var)
- Set Environment Variables
os.environ["MY_VAR"] = "some_value"
print("MY_VAR set to:", os.environ.get("MY_VAR"))
- Remove Environment Variables
os.environ.pop("MY_VAR", None)
print("Environment variable MY_VAR removed")
Recap
The Python os
module is a great tool for file handling, directory management, path manipulation, and environment variable access. While I have covered these that I used the most, the module offers much more. By mastering these features, you can write flexible, cross-platform scripts for efficient system-level tasks.
Additionally, you can get a list of available functions, constants, and methods within the os
module using the Python interactive shell, also known as the Python REPL. Just follow these steps:
-
Open your terminal and type
python3
to enter the Python REPL. -
Import the
os
module and use thedir()
function to list all available attributes:import os print(dir(os))
This will display everything the
os
module offers, including functions, constants, and methods. -
For more detailed information on any function or the entire module, use the
help()
function. For example:- To see an overview of the
os
module:help(os)
- To see information about a specific submodule like
os.path
:help(os.path)
- To see an overview of the
This will provide descriptions, usage, and examples for each function or submodule in the os
module.
Resources
os β Miscellaneous operating system interfaces by Python Docs
Thank you!
Thank you for your time and for reading this!