📅  最后修改于: 2023-12-03 15:04:21.404000             🧑  作者: Mango
Python 的 os.path
模块中提供了一个 expanduser()
方法,该方法可以扩展 ~
或 ~user
这样的路径字符串,将其转换为绝对路径。
os.path.expanduser(path)
path
:要扩展的路径字符串。该方法返回一个字符串,表示扩展 ~
或 ~user
后的绝对路径。如果 path
不是以 ~
或 ~user
开头,则返回原始字符串。
import os
path1 = '~/Downloads'
path2 = '~otheruser/Documents'
path3 = '/usr/local/bin'
abs_path1 = os.path.expanduser(path1)
abs_path2 = os.path.expanduser(path2)
abs_path3 = os.path.expanduser(path3)
print(abs_path1) # /Users/username/Downloads
print(abs_path2) # /Users/otheruser/Documents
print(abs_path3) # /usr/local/bin
上述代码中,我们使用 os.path.expanduser()
方法扩展了三个路径字符串 path1
、path2
、path3
。 path1
和 path2
分别以 ~
和 ~otheruser
开头,经过扩展后变成了当前用户的下载目录(/Users/username/Downloads
)和 otheruser
用户的文档目录(/Users/otheruser/Documents
)。
而 path3
则不以 ~
或 ~user
开头,因此经过扩展后仍然是原来的值(/usr/local/bin
)。
path
中包含变量或环境变量,也可以使用 Python 内置的 os.path.expandvars()
方法扩展。~
表示当前用户的家目录,~user
表示用户 user
的家目录。而在 Windows 系统中,~
和 ~user
均不会被扩展,需要使用 %USERPROFILE%
才能表示当前用户的家目录。