[Python-ideas] os.path.here()

Oscar Benjamin oscar.j.benjamin at gmail.com
Wed Feb 19 18:35:25 CET 2014


On 19 February 2014 17:18, Giampaolo Rodola' <g.rodola at gmail.com> wrote:
>
> On Wed, Feb 19, 2014 at 6:04 PM, Oscar Benjamin <oscar.j.benjamin at gmail.com>
> wrote:
>>
>> On 19 February 2014 16:52, Giampaolo Rodola' <g.rodola at gmail.com> wrote:
>> >
>> > The implementation is pretty straightforward:
>> >
>> > def here(concat=None):
>> >     """Return the absolute path of the parent directory where the
>> >     script is defined.
>> >     """
>> >     here = os.path.abspath(os.path.dirname(__file__))
>> >     if concat is not None:
>> >         here = os.path.abspath(os.path.join(here, concat))
>> >     return here
>>
>> So if I do from os.path import here and get the above function what
>> happens when I call it in another module?
>
> Ouch! You're right, I naively didn't take that into account. =)
> I guess there are ways to inspect the caller's module name but I'm not gonna
> push for that.
> Sorry for the noise.

There are ways to do it. namedtuple does it here:
http://hg.python.org/cpython/file/e6016fffc894/Lib/collections/__init__.py#l374

But I think that's considered to be an unfortunate mistake by some.


Oscar


More information about the Python-ideas mailing list