Allen Fowler wrote: > > > >> Something like this ... >> >> # lib/mypaths.py >> # -------------- >> >> import os >> >> def script_path(base): >> return os.path.realpath(os.path.abspath(base)) >> >> def script_dir(base): >> return os.path.dirname(script_path(base)) >> >> def join_relative(base, path): >> return os.path.join(script_dir(base), path) >> >> # app.py >> # ------ >> >> ... >> >> from lib.mypaths import join_relative >> print join_relative(__file__, 'config/prefs.ini') >> >> # this may work when calling from >> # other modules, I suppose (untested) >> >> import sys >> print join_relative(sys.argv[0], 'config/prefs.ini') >> >> ... > > > FWIW: > > When using relative paths I got extra ../../ terms, so I changed > join_relative() to: > > def join_relative(base, path): > return os.path.normpath(os.path.join(script_dir(base), path)) > > > Seems to work...
Yeah, good catch ... looks great, and thanks for sharing your mod. Marty _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor