Finding user's home dir

Nemesis nemesis at nowhere.invalid
Wed Feb 2 14:26:00 EST 2005


Hi all, I'm trying to write a multiplatform function that tries to
return the actual user home directory. I saw that
os.path.expanduser("~") works on Linux but on Windows2000 (at least on
the win I used) it returns %USERPROFILE%, so I tried os.environ["HOME"]
and it gave me the same results. So I ended up with
os.environ["USERPROFILE"], it doesn't work on Linux but (at least) on
Windows2000 it returns the correct information

I googled a little bit and it seems that there is no general solution,
so I tried to merge what I found, and I wrote this little function:

def getHomeDir():
    ''' Try to find user's home directory, otherwise return current directory.'''
    try:
        path1=os.path.expanduser("~")
    except:
        path1=""
    try:
        path2=os.environ["HOME"]
    except:
        path2=""
    try:
        path3=os.environ["USERPROFILE"]
    except:
        path3=""

    if not os.path.exists(path1):
        if not os.path.exists(path2):
            if not os.path.exists(path3):
                return os.getcwd()
            else: return path3
        else: return path2
    else: return path1

Please, could you test it on your systems and tell me what you got?
I'd like to know what it returns on different operating systems because
I'm developing a multiplatform software.

Thank you all.
-- 
Unauthorized amphibians will be toad away.
 
 |\ |       |HomePage   : http://nem01.altervista.org
 | \|emesis |XPN (my nr): http://xpn.altervista.org




More information about the Python-list mailing list