Python os.path.relpath() 方法用于检索从一个指定路径到另一个指定路径的相对路径。该方法根据当前工作目录或指定的起始目录计算起始路径和目标路径之间的相对路径。
如果起始路径和结束路径相同,该方法返回空字符串。如果起始路径不是结束路径的上级,则会引发 “ValueError”。
语法
以下是 Python os.path.relpath() 方法的基本语法 -
os.path.relpath(path, start=os.curdir)
参数
此方法接受以下参数 -
- path −这是一个字符串,表示要获取其相对文件路径的路径。
- start(可选)- 表示要计算相对路径的起始目录。如果未提供,则默认为当前目录 (os.curdir)。
返回值
该方法返回一个字符串,该字符串表示指定起始目录的相对文件路径。如果未提供 start,则从当前目录计算相对文件路径。
例在下面的示例中,我们使用 relpath() 方法计算从 “/path/to/dir” 到 “/path/to/dir/file.txt” 的相对路径 -
import os
path1 = "/path/to/dir"
path2 = "/path/to/dir/file.txt"
relative_path = os.path.relpath(path2, path1)
print(relative_path)
输出
由于 “file.txt” 直接位于 “dir” 中,因此相对路径只是 “file.txt”,如下面的输出所示 -
file.txt
例
在这里,我们正在计算从 “/path/to/dir1” 到 “/path/to/dir2/file.txt” 的相对路径 -
import os
path1 = "/path/to/dir1"
path2 = "/path/to/dir2/file.txt"
relative_path = os.path.relpath(path2, path1)
print(relative_path)
输出
由于 “file.txt” 位于不同的父目录中,因此相对路径包括 '../dir2/file.txt' 中,如下面的输出所示 -
../dir2/file.txt
例
此示例计算从当前工作目录到 “/path/to/file.txt” 的相对路径 -
import os
current_dir = os.getcwd()
file_path = "/path/to/file.txt"
relative_path = os.path.relpath(file_path, current_dir)
print(relative_path)
输出
我们得到的输出如下所示 -
../../../../path/to/file.txt
例
现在,我们正在计算从空路径到 “file.txt” 的相对路径。由于其中一个路径为空,因此该方法返回非空路径作为结果 -
import os
path1 = ""
path2 = "file.txt"
relative_path = os.path.relpath(path2, path1)
print(relative_path)
输出
生成的结果如下 -
file.txt