Finding Script Directory
Steve Holden
sholden at holdenweb.com
Wed Jul 7 10:17:07 EDT 2004
Peter Hansen wrote:
> 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
Oh, come now, Peter, you've seen this problem solved more times than you
can shake a stick at. The required code is
import os.path, sys
print os.path.abspath(sys.argv[0])
How hard can that be to remember? Didn't realise you were getting so OLD
;-) ...
regards
STeve
More information about the Python-list
mailing list