什么是Windows等价的pwd.getpwnam(用户名).pw_dir?
Python pwd模块提供对getpwnam(3)POSIX API的访问,该API可用于通过用户名获取特定用户的主目录,以及确定用户名是否有效.如果使用不存在的用户名调用,pwd.getpwnam将引发异常.
起初,似乎可以通过os.path.expanduser(‘~username’)以跨平台方式实现相同的结果.但是,似乎在Windows XP上使用Python 2.6,这实际上不会导致不存在的用户名失败.此外,在Windows XP上的Python 2.5上,即使对于有效用户来说似乎也失败了. 可以在Windows上可靠地获取此信息吗?怎么样?
阅读
2.6 documentation表明os.path.expanduser()在Windows上被破坏:
说什么?这假设所有用户家庭必须位于同一父目录下.新加坡国立大学医院,唉! 这有点难以挖掘,但这里有一个解决方案,它将通过给定名称查找本地用户: from win32security import LookupAccountName,ConvertSidToStringSid from _winreg import OpenKey,QueryValueEx,HKEY_LOCAL_MACHINE def getUserDir(userName): ssid = ConvertSidToStringSid(LookupAccountName(None,userName)[0]) key = OpenKey(HKEY_LOCAL_MACHINE,r'SOFTWAREMicrosoftWindows NTCurrentVersionProfileList' + ssid) return QueryValueEx(key,'ProfileImagePath')[0] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Windows上的Java / MongoDB消息长度错误,但Linux上没有
- Windows桌面小程序+谷歌浏览器+人工智能算法 = 100+职位一键
- windows – 将Node.js-Scripts node.exe打包成单个可执行文
- Windows上的低级是什么:C库或相应的Win32 API函数?
- .net – 在Windows窗体应用程序中捕获Doubleclick for Mont
- windows – 如何在Delphi中允许拖动特定控件的文件
- windows – 想要抑制文件未找到输出
- 在Windows上使用音频检测进程
- 仅限Windows 7上的.NET 4串行端口ObjectDisposedException
- 在现有2008R2中添加Windows Server 2012 DC而不更新架构
- windows – 从ReplaceFile重现ERROR_UNABLE_TO_M
- windows – 如何在运行.bat文件时隐藏ms-dos窗口
- windows-server-2003 – 为WebSites定义IIS IP地
- audio – 如何将PJSIP与VOIP chatterbox示例应用
- windbg – 如何从内存转储中提取DLL文件?
- msmq – 有没有办法只查看计算机管理的消息队列部
- 克隆 – 适用于Windows的最佳服务器类幻像工具
- 在锁定或解锁Windows XP时运行脚本
- ms-access – 从Microsoft Access计算字符串的MD
- winapi – Windows中的错误 – DWORD(GetLastErr