The os module

The `os` module provides a way to interact with the operating system. It allows us to perform various operations related to file and directory management, process management, environment variables, and more.

Here are a few practical examples of how you can use the `os` module:

**1. Working with Files and Directories:**

The `os` module provides functions to work with files and directories, such as creating, renaming, deleting, and navigating through them.

Get the current working directory

import os
current_dir = os.getcwd()
print(current_dir)
/Users/yogesh/projects/pyfiddle/web/home
Create a new directory
os.mkdir("new_directory")
Let's also create a file so we can work with it later.
open("new.txt", "w").close()

List all files and directories in the current directory
os.listdir()
['new_directory', 'example.txt', 'new.txt']

Rename a file or directory
os.rename("new_directory", "renamed_directory")
os.listdir()
['renamed_directory', 'example.txt', 'new.txt']
Delete a file or directory
os.remove("new.txt")
os.rmdir("renamed_directory")
os.listdir()
['example.txt']
**2. Environment Variables:**

The `os` module provides functions to access and modify environment variables.

Get the value of an environment variable
import os
home_dir = os.getenv("HOME")
print(home_dir)
/Users/yogesh
Set the value of an environment variable
import os
os.environ["MY_VARIABLE"] = "my_value"
print(os.environ["MY_VARIABLE"])
my_value
In this code, we use `os.getenv()` to get the value of the `HOME` environment variable, which stores the path to the user's home directory. We also use `os.environ` to set the value of a custom environment variable called `MY_VARIABLE`.

**3. Running System Commands:**

The `os` module allows us to run system commands using the `os.system()` function.

  ```python [main.nopy]
  import os

  # Run a system command to list all files and directories
  os.system("ls -l")
  ```

In this code, we use the `os.system()` function to run the system command `ls -l`, which lists the files and directories in the current directory.

We learned how to list and manipulate files or directories with the `os` module. For advanced use cases such as searching for files based on a pattern, read about the [glob module](/tutorials/glob).