What is the difference between os.path.basename() and os.path.dirname()?


What is the difference between os.path.basename() and os.path.dirname()?

I already searched for answers and read some links, but didn’t understand.
Can anyone give a simple explanation?

Asked By: user1429210



Both functions use the os.path.split(path) function to split the pathname path into a pair; (head, tail).

The os.path.dirname(path) function returns the head of the path.

E.g.: The dirname of '/foo/bar/item' is '/foo/bar'.

The os.path.basename(path) function returns the tail of the path.

E.g.: The basename of '/foo/bar/item' returns 'item'

From: http://docs.python.org/3/library/os.path.html#os.path.basename

Answered By: Breno Teixeira

To summarize what was mentioned by Breno above

Say you have a variable with a path to a file

path = '/home/User/Desktop/myfile.py'

os.path.basename(path) returns the string 'myfile.py'


os.path.dirname(path) returns the string '/home/User/Desktop' (without a trailing slash ‘/’)

These functions are used when you have to get the filename/directory name given a full path name.

In case the file path is just the file name (e.g. instead of path = '/home/User/Desktop/myfile.py' you just have myfile.py), os.path.dirname(path) returns an empty string.

Answered By: Umar Dastgir
Categories: questions Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.