本篇文章将介绍使用 Python 中的 os.path.expanduser 或 pathlib 库获取主目录的路径。
要获取用户的主目录,我们可以使用Python中的os.path.expanduser。 我们必须在 os.path.expanduser()
函数中传递一个字符串字符 ~ ,它将返回当前登录用户的主目录路径。
它使用内置密码数据库或 pwd 模块来搜索主目录的路径,并且 pwd 模块提供用户的帐户详细信息,例如登录名和密码。 该模块适用于所有平台,例如 Windows 和 Linux。
例如,让我们使用 os.path.expanduser 模块获取主目录。 请参阅下面的代码。
from os.path import expanduser
home_directory = expanduser("~")
print(home_directory)
输出:
C:\Users\ammar
上面的代码在 Windows 上进行了测试,输出可能会根据用户和平台的不同而变化。 如果我们想找到当前未登录的另一个用户的主目录路径,我们可以在上面代码中的~字符后面添加用户名。
我们还可以使用 os.path.join()
函数连接两个路径,就像将主目录路径与另一个路径连接一样。 我们可以在 os.path.join()
函数中传递我们想要加入的路径。
例如,让我们使用 os.path.join()
函数将上述路径与另一个路径连接起来。 请参阅下面的代码。
from os.path import expanduser, join
home_directory = expanduser("~")
new_directory = join(home_directory, 'newPathName')
print(home_directory)
print(new_directory)
输出:
C:\Users\ammar
C:\Users\ammar\newPathName
在上面的代码中,我们将主目录路径与另一个路径连接起来。 我们还可以将多个路径连接在一起,例如 2 个或更多。
我们不能在 join()
函数中添加像反斜杠 \ 这样的特殊字符,因为反斜杠与某些字符组合将不会输出正确的结果。 例如,如果我们将上面的路径更改为 newPathName\tpath2,则结果将包含制表符空格,因为 \t
在字符串中用作制表符空格。
我们建议在 join()
函数中单独添加每个路径。 例如,如果我们想将另一个路径与上述路径连接起来,我们必须将其作为第三个参数传递,join()
函数会将其放在新路径的末尾,并且会自动添加反斜杠。
请参阅下面的示例代码。
join(path1,path2,path3,....)
确保在代码中使用 join()
和 Expanduser()
函数之前导入它们。 检查 os.path.expanduser 库以获取更多详细信息。
我们还可以使用 pathlib 库的 home()
函数来获取主目录的路径。 例如,让我们使用 pathlib 库查找主目录。
请参阅下面的代码。
from pathlib import Path
home_directory = str(Path.home())
print(home_directory)
输出:
C:\Users\ammar
在上面的代码中,我们使用 str 函数将 home()
函数的输出转换为字符串。 这适用于所有平台,例如 Windows 和 Linux; 但是,输出可能会根据用户和平台的不同而改变。
我们还可以使用 pathlib 库的 PureWindowsPath().joinPath()
函数连接两个或多个路径。 起始路径将在 PureWindowsPath()
函数内部传递,新路径将添加到 joinPath()
函数中以获得一个组合路径。
例如,让我们使用 PureWindowsPath().joinPath()
函数将上述路径与两个路径组合起来。 请参阅下面的代码。
from pathlib import Path,PureWindowsPath
home_directory = Path.home()
new_directory = PureWindowsPath(home_directory).joinpath('newPathName','path2')
print(home_directory)
print(new_directory)
输出:
C:\Users\ammar
C:\Users\ammar\newPathName\path2
在上面的代码中,我们添加了两个路径,但是我们可以添加任意多个路径,但我们必须避免同一字符串内出现反斜杠。 这是因为反斜杠与一些特殊字符结合会产生问题,例如 \n
会添加新行,\t
会在输出中添加制表符空格。
我们建议在 joinPath()
函数中单独添加每个路径。
确保在代码中使用 Path()
和 PureWindowsPath()
函数之前导入它们。 检查 pathlib 库以获取更多详细信息。