Why does python have os.path.curdir
python
Solution
It is a constant, just like `os.path.sep`.
Platforms other than POSIX and Windows could use a different value to denote the 'current directory'. On Risc OS it's `@` for example, on the old Macintosh OS it's `:`.
The value is used throughout the standard library to remain platform agnostic.
Use `os.getcwd()` instead; `os.path.abspath()` uses that function under the hood to turn `os.path.curdir` into the current working directory anyway. Here is the POSIX implementation of `abspath()`:
def abspath(path):
"""Return an absolute path."""
if not isabs(path):
if isinstance(path, _unicode):
cwd = os.getcwdu()
else:
cwd = os.getcwd()
path = join(cwd, path)
return normpath(path)
Problem
`os.path.curdir` returns '.' which is totally truthful and totally worthless. To get anything useful from it, you have to wrap it with `os.path.abspath(os.path.curdir)` Why include a useless variable in the os.path module? Why not have os.path.curdir be a function that does the os.path.abspath for you? Is there some historic reason for `os.path.curdir` to exist? Maybe useless is a bit harsh, but not very useful seems weak to describe this.