I want to get the path of the current directory under which a .py file is executed.
For example a simple file D:\test.py with code:
import os
print os.getcwd()
print os.path.basename(__file__)
print os.path.abspath(__file__)
print os.path.dirname(__file__)
It is weird that the output is:
D:\
test.py
D:\test.py
EMPTY
I am expecting the same results from the getcwd() and path.dirname().
Given os.path.abspath = os.path.dirname + os.path.basename, why
os.path.dirname(__file__)
returns empty?
Because
os.path.abspath = os.path.dirname + os.path.basenamedoes not hold. we rather haveBoth
dirname()andbasename()only split the passed filename into components without taking into account the current directory. If you want to also consider the current directory, you have to do so explicitly.To get the dirname of the absolute path, use