【发布时间】:2020-09-20 08:55:41
【问题描述】:
通常,命令pathlib.Path.home() 或os.environ['HOME'] 允许在Python 中获取用户主目录,例如this tutorial。
但是,当我从 WinPython 命令提示符启动这些命令时,它会返回 WinPython 文件夹中的设置目录,例如:
>>> pathlib.Path.home()
WindowsPath('C:/Users/myName/WPy64-3741/settings')
我可以做些什么来获取实际的用户主目录?
【问题讨论】:
-
Windows 中的用户帐户同时具有主目录 ("%HOMEDRIVE%%HOMEPATH%") 和配置文件目录 ("%USERPROFILE%")。通常它们是同一个目录,但不一定。在某些情况下,主目录可能未设置或可能设置为“%SystemRoot%\System32”,这是辅助登录的情况(例如“runas.exe”)。
-
主目录和配置文件目录都不适合查找“桌面”或“文档”等特殊文件夹。特殊文件夹的默认路径是相对于配置文件目录的,但您不能依赖默认路径。此外,如果您遵循平台约定,则设置位于本地应用程序数据目录 ("%LOCALAPPDATA%") 或漫游应用程序数据目录 ("%APPDATA%") 的子目录中,而不是主目录或配置文件目录中。