How to get an absolute file path in Python How to get an absolute file path in Python python python

How to get an absolute file path in Python


>>> import os>>> os.path.abspath("mydir/myfile.txt")'C:/example/cwd/mydir/myfile.txt'

Also works if it is already an absolute path:

>>> import os>>> os.path.abspath("C:/example/cwd/mydir/myfile.txt")'C:/example/cwd/mydir/myfile.txt'


You could use the new Python 3.4 library pathlib. (You can also get it for Python 2.6 or 2.7 using pip install pathlib.) The authors wrote: "The aim of this library is to provide a simple hierarchy of classes to handle filesystem paths and the common operations users do over them."

To get an absolute path in Windows:

>>> from pathlib import Path>>> p = Path("pythonw.exe").resolve()>>> pWindowsPath('C:/Python27/pythonw.exe')>>> str(p)'C:\\Python27\\pythonw.exe'

Or on UNIX:

>>> from pathlib import Path>>> p = Path("python3.4").resolve()>>> pPosixPath('/opt/python3/bin/python3.4')>>> str(p)'/opt/python3/bin/python3.4'

Docs are here: https://docs.python.org/3/library/pathlib.html


Install a third-party path module (found on PyPI), it wraps all the os.path functions and other related functions into methods on an object that can be used wherever strings are used:

>>> from path import path>>> path('mydir/myfile.txt').abspath()'C:\\example\\cwd\\mydir\\myfile.txt'