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 ?