Finding Script Directory

Peter Hansen peter at engcorp.com
Wed Jul 7 15:58:20 CEST 2004


Fuzzyman wrote:

> What's the best, cross platform, way of finding out the directory a
> script is run from ?
> 
> I've googled a bit, but can't get a clear answer.

I've seen twenty threads on this and I still don't know/recall
whether there's a clear answer. :-(

> On sys.argv[0] the docs say :
> argv[0] is the script name (it is operating system dependent whether
> this is a full pathname or not).
> 
> So this doesn't seem to be the answer.

Actually, it's all you've got to work with.  On Linux and Windows,
at least, it's got either just the script name, if you're running
from the current directory, or a path (relative or absolute) to
the directory where the script is run from.  It's like this whether
py2exe'd or not, too.

__file__ could be of assistance, but it doesn't exist when
you've py2exe the thing...

> The script directory is always *somewhere* in sys.path - but not
> always in position 0. If you use py2exe then sys.path[0] is the
> zipfile it does the imports from !!

Yeah, sys.path isn't much good for this sort of thing.

-Peter



More information about the Python-list mailing list