Finding the path to a file

T

Todd Johnson

Hey,

I have been working on a program that stores
information for each user in a subdirectory of the
directory in which the script is run. So if my script
is in /home/someuser/myprogram, the config files and
such are in /home/someuser/myprogram/config. Now if I
invoke the interpreter from the same directory as the
script is in I can load and save the files because cwd
points to that directory(I used cwd to get the path
and then add /config to it to get to the proper
directory)

My problem is that if I invoke it with a command like
python /home/someuser/myprogram but I am in
/home/someuser, cwd does not point to the scripts
directory but to the directory the interpreter was
invoked from. This means I don't know how to find the
config files other than making them hard coded to a
certain directory. I don't want to hard code them
however so that the program can be contained in one
directory and easily removed and I also don't want to
have to specify where a user installs the program.

So basically, I want to know how to find the directory
my script is in, even when it is invoked from another
directory. Any help would be greatly appreciated.

Thanks in advance,
Todd A. Johnson

=====
The grace of the Lord Jesus Christ, and the love of God, and the communion of the Holy Ghost, be with you all. Amen. II Corinthians 13:14

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
 
A

Anand Pillai

One way to do this is to specify an environment
variable similar to PYTHONPATH for your application.
It will be the place where the program should search
for the config file.

On unix, one user would use it as follows.

Egs: % export MYCONFIGPATH="/etc:/usr/local/etc:/home/someuser/:
/home/soomeuser/program"

In your program, look for the config file first in cwd
.. If you cannot find it look up this env variable from
the shell using os.environ.get() and walk through the
paths using os.path.walk() to look for your cfg file.
I suggest os.path.walk() as it can recurse the sub-paths
too.

It reminds me, I have to add similar functionality for
harvestman.

Anand
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,042
Latest member
icassiem

Latest Threads

Top