環境: Windows XP
>>> service = {'FP_NO_HOST_CHECK': 'NO', 'TMP': 'C:\\WINDOWS\\TEMP', 'COMPUTERNAME': 'COMPUTER', 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe', 'TEMP': 'C:\\WINDOWS\\TEMP', 'WINDIR': 'C:\\WINDOWS', 'SYSTEMDRIVE': 'C:', 'PROCESSOR_ARCHITECTURE': 'x86', 'NUMBER_OF_PROCESSORS': '1', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'ALLUSERSPROFILE': 'C:\\Documents and Settings\\All Users', 'PROCESSOR_IDENTIFIER': 'x86 Family 16 Model 4 Stepping 2, AuthenticAMD', 'PROCESSOR_LEVEL': '16', 'PROGRAMFILES': 'C:\\Program Files', 'PROCESSOR_REVISION': '0402', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH', 'SYSTEMROOT': 'C:\\WINDOWS', 'USERPROFILE': 'C:\\Documents and Settings\\LocalService', 'OS': 'Windows_NT', 'PATH': 'C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem'} >>> user = {'TMP': 'C:\\DOCUME~1\\root\\LOCALS~1\\Temp', 'COMPUTERNAME': 'COMPUTER', 'USERDOMAIN': 'COMPUTER', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'PROCESSOR_IDENTIFIER': 'x86 Family 16 Model 4 Stepping 2, AuthenticAMD', 'PROGRAMFILES': 'C:\\Program Files', 'PROCESSOR_REVISION': '0402', 'SYSTEMROOT': 'C:\\WINDOWS', 'PATH': 'C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem', 'TEMP': 'C:\\DOCUME~1\\root\\LOCALS~1\\Temp', 'PROCESSOR_ARCHITECTURE': 'x86', 'ALLUSERSPROFILE': 'C:\\Documents and Settings\\All Users', 'SESSIONNAME': 'Console', 'HOMEPATH': '\\Documents and Settings\\root', 'USERNAME': 'root', 'LOGONSERVER': '\\\\COMPUTER', 'PROMPT': '$P$G', 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH', 'FP_NO_HOST_CHECK': 'NO', 'WINDIR': 'C:\\WINDOWS', 'APPDATA': 'C:\\Documents and Settings\\root\\Application Data', 'HOMEDRIVE': 'C:', 'SYSTEMDRIVE': 'C:', 'NUMBER_OF_PROCESSORS': '1', 'PROCESSOR_LEVEL': '16', 'OS': 'Windows_NT', 'USERPROFILE': 'C:\\Documents and Settings\\root'} >>> set(user) - set(service) set(['USERNAME', 'LOGONSERVER', 'PROMPT', 'HOMEDRIVE', 'APPDATA', 'USERDOMAIN', 'SESSIONNAME', 'HOMEPATH']) >>> set(service) - set(user) set([])
なので
>>> import user >>> user.home '.' >>> import os >>> os.getcwd() 'C:\\WINDOWS\\system32' >>> os.getenv('tmp') 'C:\\WINDOWS\\TEMP'
ユーザーのホームを取得するには恐らく以下のコードが望ましい。
POSIX 系ならもちろん上手くいくし、Windows でも os.getenv(‘userprofile’) が取得できる。
>>> import os >>> os.path.expanduser('~') 'C:\\Documents and Settings\\LocalService'