In Python, we can work with many files and modules and constantly interact with the file system. To import or export files, we need to know the correct path and directory of such files; otherwise, errors are raised. It is also essential to know the path of the currently running Python script or the path of some other file.
The current working directory is the directory of Python in which we are currently working on.
This tutorial will introduce how to get the full path and directories of the current file and the current working directory in Python.
Use of the
pathlib Module to Get the Path of Files and Current Working Directory
pathlib library is available to Python 3.x and up and contains classes, methods to handle file-path-related problems.
In the code below, we will extract the path of a Python script using the functions provided by the
import pathlib print(pathlib.Path(__file__).parent.absolute())
absolute() method returns the full path of the file, and the
parent() function retrieves the directory of the file from this path.
To get the current working directory, we remove the file name from the above function. The following code shows how:
import pathlib print(pathlib.Path().absolute())
os Module to Get the Path of Files and the Current Working Directory
os library is used to interact with the Operating System and has functions available to retrieve full paths of the files. This method works with Python 2.x as well.
abspath() function can get the required file’s path, and the
dirname() function gets the directory from the full path.
import os print(os.path.dirname(os.path.abspath(__file__)))
We cannot use the
dirname() function directly to get a file’s directory as it returns an empty string.
We can also use the
realpath() function as an alternative to the
abspath() function. It removes any symbolic links if present from the path.
import os print(os.path.dirname(os.path.realpath(__file__)))
To get the current working directory, we can use the
getcwd() function that returns the current directory path. We can pass this path to the
dirname() function to get the directory.
import os print(os.path.abspath(os.getcwd()))