Python os.path.relpath() 方法



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
os_path_methods.htm
广告