如何使用 Python 查找真实用户主目录?

2025年1月5日 | 阅读 2 分钟

主目录是在多用户操作系统中,用于存储特定于某个用户的文件系统的位置。主目录的另一个名称是登录目录。有许多方法可以借助 Python 来获取主目录。

使用 os 模块

Python 中 os 模块提供的 os.path.expanduser() 函数有助于跨所有平台获取用户主目录。os.path.expanduser('') 用于获取主目录。如果它是较长路径的一部分,它也能正常工作。如果路径中没有 ~,则返回未更改的路径。

代码

输出

 
C:\Users\Aditya Shakya

说明

在上面的代码中,导入了 os 模块,创建了一个名为 home_directory 的变量,并通过 os.path.expanduser() 函数,将 '~' 运算符传递给目录,用于获取主目录。

让我们看看如何在主目录中查找文件。

代码

输出

 
C:\Users\Aditya Shakya\Documents

说明

在上面的代码中,通过 os 模块提供的 os.path.expanduser() 函数获取主目录,然后将此目录与文档目录连接起来,并打印目录的路径。

如果路径已作为字符串给出,例如 C:\Users\Aditya Shakya\Documents,并且该路径要被主目录路径替换,则可以使用 os.path.join(),这是生成路径的安全方法,来使用 .expanduser() 获取目录。

代码

输出

 
C:\Users\Aditya Shakya\Documents

说明

在上面的代码中,路径 '~' 被文档路径替换,并打印了整个主目录路径。

借助 pathlib 模块

Python 提供的 pathlib 模块可用于获取用户的主目录。

代码

输出

 
Path: C:\Users\Aditya Shakya!

说明

在上面的代码中,从 pathlib 模块导入了 path,并通过 Path 类提供的 home() 函数,打印了主目录。

也可以打印主目录内的路径。

代码

输出

 
Path: C:\Users\Aditya Shakya\Documents!

说明

在上面的代码中,将主目录路径与文档路径连接起来,并打印了主目录。

如果已给出路径字符串,则可以使用 expanduser() 函数打印主目录路径。

代码

输出

 
Path: C:\Users\Aditya Shakya\Documents!

说明

在上面的代码中,将 path_string 传递给 Path 函数,并通过 expanduser() 打印了主目录。