Python os path relpath:获取相对路径

发布时间:2023-05-12

一、Python os.path.relpath()

Python os.path.relpath() 方法返回相对路径。它从 start 到 path 的相对路径可以表示为相对于当前工作目录的相对路径。start 和 path 参数很容易理解:

import os
path = os.path.relpath('my_folder/my_file.txt', 'my_folder')
print(path)

该示例返回:'my_file'。 对于这个示例来说,我们在开始的时候已经位于 'my_folder' 文件夹里,所以它是相对于我们的位置的。可以使用 os.getcwd() 函数来获取当前工作目录:

import os
os.getcwd()

注意:relpath() 函数需要该路径存在于文件系统中。

二、os.path.abspath() 获取绝对路径

要在 Python 中返回某个路径的绝对路径,可以使用 os.path.abspath() 函数:

import os
path = os.path.abspath('my_folder/my_file.txt')
print(path)

该示例返回文件绝对路径,例如:'/home/username/my_folder/my_file.txt'

三、os.path.dirname() 获取上级目录名

可以轻松地从路径中获取上级目录,这可以通过 os.path.dirname() 函数轻松实现。该函数返回指定路径的母文件夹路径,如果指定的路径指向文件夹,则返回上一级目录:

import os
path = '/my_folder/my_sub_folder/my_file.txt'
parent_folder = os.path.dirname(path)
print(parent_folder)

该示例返回:'/my_folder/my_sub_folder'

四、os.path.join() 连接路径

os.path.join() 方法将元素连接到路径中,然后按照正确的顺序处理斜杠。不需要手动注入斜杠符号,os.path.join() 方法将根据需要注入斜杠。 例如,以下示例使用 os.path.join() 方法构建路径:

import os
my_folder = '/path/to/folder'
my_sub_folder = 'my_sub_folder'
my_file = 'my_file.txt'
path = os.path.join(my_folder, my_sub_folder, my_file)
print(path)

该示例返回:'/path/to/folder/my_sub_folder/my_file.txt'

五、os.path.split() 获取路径的文件名和目录

os.path.split() 方法以元组的形式返回路径的文件名和目录部分:

import os
path = '/my_folder/my_sub_folder/my_file.txt'
directory, file_name = os.path.split(path)
print(directory)
print(file_name)

该示例返回:

/my_folder/my_sub_folder
my_file.txt

六、小结

Python os.path.relpath() 方法很有用,在处理文件和文件夹路径时非常常用。配合其他 os.path 模块下的方法,如 abspath()dirname()join()split(),可以非常高效处理文件目录的相关操作。