On 22 Feb, 17:13, Brandon Mintern <[EMAIL PROTECTED]> wrote:
>
> toplevel_dir
> +-main script
> +-wrapper_dir
>   +-some_wrapper
>   +-utility_dir
>     +-some_external_utility

[...]

> And then in some_wrapper, I would have code like:
>
> import os
>
> def use_external_utility():
>   f = os.popen('utility_dir/some_external_utility')
>   lines = f.readlines()
>   f.close()
>   return lines

And you really want to refer to utility_dir relative to some_wrapper.
What you can try is to split the __file__ attribute of some_wrapper -
it's a standard attribute on imported modules - in order to refer to
the module's parent directory (which should correspond to
wrapper_dir):

parent_dir, filename = os.path.split(__file__)

Then you can join the parent directory to the path of the command:

cmd = os.path.join(parent_dir, "utility_dir", "some_external_utility")

The __file__ attribute of modules is documented here:

http://docs.python.org/ref/types.html#l2h-109

Paul

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to