On 19/03/2013 09:55, Peter Otten wrote:
Frank Millman wrote:
I want to locate a file relative to the directory from which the main
program was launched.
I have found two ways of finding the starting directory -
1.
import os
dir = os.getcwd()
This gives the current working directory...
2.
import os.path
import __main__
dir = os.path.dirname(__main__.__file__)
... and this gives the location of your main script.
I know that the first one will return the wrong result if os.chdir() has
been executed, but I don't do that.
You'll get different results when you launch the script with an explicit
path:
$ cat millman/demo.py
import os
import __main__
print "cwd:", os.getcwd()
print "script path:", os.path.abspath(os.path.dirname(__main__.__file__))
$ python millman/demo.py
cwd: /home/frank
script path: /home/frank/millman
That makes sense. I usually launch the script from its own directory,
but that is not guaranteed.
Therefore option 2 is the way to go.
Thanks, Peter
Frank
--
http://mail.python.org/mailman/listinfo/python-list