Finding the path to a file

Discussion in 'Python' started by Todd Johnson, Aug 12, 2003.

  1. Todd Johnson

    Todd Johnson Guest

    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
     
    Todd Johnson, Aug 12, 2003
    #1
    1. Advertising

  2. Todd Johnson

    Anand Pillai Guest

    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

    Todd Johnson <> wrote in message news:<>...
    > 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
     
    Anand Pillai, Aug 13, 2003
    #2
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    1
    Views:
    605
    Oliver Wong
    Jul 13, 2006
  2. Suresh Jeevanandam

    Finding the relative path of a file from a dir

    Suresh Jeevanandam, Jan 20, 2006, in forum: Python
    Replies:
    4
    Views:
    315
    Fuzzyman
    Jan 20, 2006
  3. are Dogue
    Replies:
    1
    Views:
    209
    are Dogue
    May 18, 2011
  4. Paul
    Replies:
    5
    Views:
    221
    Kyle Peterson
    Mar 20, 2006
  5. Replies:
    3
    Views:
    184
    J├╝rgen Exner
    May 12, 2009
Loading...

Share This Page