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.