一、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(),可以非常高效处理文件目录的相关操作。