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.