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'