WindowsNT user authentication

Tim Golden mail at timgolden.me.uk
Mon Feb 12 10:53:51 EST 2007


billie wrote:

> Do you got any idea about how getting user's home directory?

The answer to that is unfortunately slightly complicated,
because Windows has no such thing as a "user's home directory"
or, if you prefer, it has several such things.

If you want, you can let Python make the decision, by
calling os.path.expanduser on "~" which, in my case,
correctly gives h:\ which is my domain home directory.

Obviously this is not necessarily the same as my Documents
and Settings directory, which can also be considered a home
directory. That you can get by querying the shell:

<code>
from win32com.shell import shell, shellcon

idlist = shell.SHGetSpecialFolderLocation (0, shellcon.CSIDL_PERSONAL)
documents_and_settings = shell.SHGetPathFromIDList (idlist)
print documents_and_settings

</code>

In my case they are the same but that will depend on your
setup. I know in the past at least one of these has
defaulted to c:\

Alternatives (which in my case amount to the same thing)
include using the HOMEDRIVE / HOMEPATH / HOMESHARE
environment vars:

<code>
import os
drive = os.environ.get ("HOMEDRIVE", "")
path = os.environ.get ("HOMEPATH", "")

share = os.environ.get ("HOMESHARE", "")

print drive+path
print share
</code>

I haven't bothered to look, but I think this latter
is how the expanduser function works things out.

YMMV
TJG



More information about the Python-list mailing list