How to get full path to script?

Mike Driscoll kyosohma at gmail.com
Mon Jun 9 20:00:28 CEST 2008


On Mon, Jun 9, 2008 at 12:42 PM, Sebastian lunar Wiesner
<basti.wiesner at gmx.net> wrote:
>  Mike Driscoll <kyosohma at gmail.com> at Montag 09 Juni 2008 18:20:
>
>> On Mon, Jun 9, 2008 at 11:07 AM, kj <socyl at 987jk.com.invalid> wrote:
>>> In <mailman.228.1213022580.1044.python-list at python.org> "Mike Driscoll"
>>> <kyosohma at gmail.com> writes:
>>>
>>>>For my compiled scripts, I usually use this variation:
>>>
>>>>path = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0])))
>>>
>>> Thanks.  But why the os.path.join()?  (BTW, I did read the docs
>>> before posting, but they make no sense to me; they say that
>>> os.path.join joins "one or more path components intelligently",
>>> but what does it mean to join *one* component?)
>>>
>>> Kynn
>>>
>>> --
>>> NOTE: In my address everything before the first period is backwards;
>>> and the last period, and everything after it, should be discarded.
>>> --
>>> http://mail.python.org/mailman/listinfo/python-list
>>>
>>
>> The idea of the join method is to create the path in an OS agnostic
>> fashion. Linux uses forward slashes and Windows uses backward slashes
>> to join the parts. The join method does this for you so you don't have
>> to.
>
> I guess, you didn't get his point.  He seems to be aware that os.path.join
> creates a path from _multiple_ strings by joining them with the correct
> separator used by the underlying platform.
>
> But he was asking why one would invoke os.path.join on a _single_ string, as
> you did in your example.  I'm wondering about this, too.  It doesn't make
> sense to me.  os.path.join doesn't convert existing separators to the
> platform-specific ones.  And even if it would, sys.argv[0] already contains
> a correct path, so there is nothing that needs conversion.  So why use it
> with a _single_ argument?  I'd appreciate an example, illustrating the use
> of this ;)
>
>
> --
> Freedom is always the freedom of dissenters.
>                                      (Rosa Luxemburg)
> --
> http://mail.python.org/mailman/listinfo/python-list
>

Okay, basically the answer is that I'm kind of stupid. Months ago, the
users on the wxPython group were discussing this issue and one of them
posted that snippet of code to show how they worked around the issue.
I thought I'd try it and it worked great, although I couldn't really
follow what was happening at the time.

Looking at it now, there doesn't appear to be any reason for the
os.path.join part. I tried running one of my simple scripts with and
without it and they return the same string.

I apologize for propagating erroneous code.

Mike



More information about the Python-list mailing list