finding out absolute path to a file from python

Question:

If I have a file test.py that resides in some directory, how can I find out from test.py what directory it is in? os.path.curdir will give the current directory but not the directory where the file lives. If I invoke test.py from some directory foo, os.curdir will return foo but not the path of test.py.

thanks.

Asked By: user248237

||

Answers:

the answer is to use:

 __file__

which returns a relative path.

os.path.abspath(__file__) 

can be used to get the full path.

Answered By: user248237

os.path has lots of tools for dealing with paths and getting information about paths.

Particularly, you want:

os.path.abspath
Answered By: Donald Miner

Here’s how to get the directory of the current file:

import os
os.path.abspath(os.path.dirname(__file__))
Answered By: Sam Dolan
import os
dirname, filename = os.path.split(os.path.abspath(__file__))
Answered By: ars

The answers so far have correctly pointed you to os.path.abspath, which does exactly the job you requested. However don’t forget that os.path.normpath and os.path.realpath can also be very useful in this kind of tasks (to normalize representation, and remove symbolic links, respectively) in many cases (whether your specific use case falls among these “many” is impossible to tell from the scant info we have, of course;-).

Answered By: Alex Martelli
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.