Python Directory

Summary: in this tutorial, you’ll learn how to manipulate directories in Python using the os module.

Get the current working directory #

The current working directory is the directory where the Python script is running. To get the current working directory, you use the os.getcwd() as follows:

import os


cwd = os.getcwd()
print(cwd)Code language: JavaScript (javascript)

To change the current working directory, you use the function os.chdir():

import os


os.chdir('/script')
cwd = os.getcwd()
print(cwd)Code language: JavaScript (javascript)

Join and split a path #

To make a program work across platforms including Windows, Linux, and macOS, you need to use platform-independent file and directory paths.

Python provides you with a submodule os.path that contains several useful functions and constants to join and split paths.

The join() function joins path components together and returns a path with the corresponding path separator. For example, it uses backslash (\) on Windows and forward slash (/) on macOS or Linux.

The split() function splits a path into components without a path separator. Here’s an example of using join() and split() functions:

import os

fp = os.path.join('temp', 'python')
print(fp)  # temp\python (on Windows)

pc = os.path.split(fp)
print(pc)  # ('temp', 'python')
Code language: PHP (php)

Test if a path is a directory #

To check if a path exists and is a directory, you can use the functions os.path.exists() and os.path.isdir() functions. For example:

import os

dir = os.path.join("C:\\", "temp")
print(dir)

if os.path.exists(dir) or os.path.isdir(dir):
    print(f'The {dir} is a directory')Code language: PHP (php)

Create a directory #

To create a new directory, you use os.mkdir() function. And you should always check if a directory exists first before creating a new directory.

The following example creates a new directory called python under the c:\temp directory.

import os

dir = os.path.join("C:\\", "temp", "python")
if not os.path.exists(dir):
    os.mkdir(dir)
Code language: JavaScript (javascript)

Rename a directory #

To rename the directory, you use the os.rename() function:

import os

oldpath = os.path.join("C:\\", "temp", "python")
newpath = os.path.join("C:\\", "temp", "python3")

if os.path.exists(oldpath) and not os.path.exists(newpath):
    os.rename(oldpath, newpath)
    print("'{0}' was renamed to '{1}'".format(oldpath, newpath))
Code language: JavaScript (javascript)

Delete a directory #

To delete a directory, you use the os.rmdir() function as follows:

import os

dir = os.path.join("C:\\","temp","python")
if os.path.exists(dir):
    os.rmdir(dir)
    print(dir + ' is removed.')Code language: JavaScript (javascript)

Traverse a directory recursively #

The os.walk() function allows you to traverse a directory recursively. The os.walk() function returns the root directory, the sub-directories, and files.

The following example shows how to print all files and directories in the c:\temp directory:

import os

path = "c:\\temp"
for root, dirs, files in os.walk(path):
    print("{0} has {1} files".format(root, len(files)))Code language: JavaScript (javascript)

Summary #

  • Use the os.getcwd() function to get the current working directory.
  • Use the os.chdir() function to change the current working directory to a new one.
  • Use the os.mkdir() function to make a new directory.
  • Use the os.rename() function to rename a directory.
  • Use the os.rmdir() function to remove a directory.
  • Use the os.walk() function to list the contents of a directory.
Did you find this tutorial helpful ?