您的位置:

Python os.path.dirname:获取路径的父级目录

一、os.path.dirname()函数介绍

在Python中,os.path.dirname()函数用于获取指定文件路径的父级目录。它返回路径的最后一个目录名的上级目录,可以理解为提取一个路径字符串的目录部分,并返回其中的父目录。

使用os.path.dirname()函数的前提是必须相对路径或者绝对路径必须存在,如果指定的路径不存在,函数将返回空值。

二、os.path.dirname()函数的用法

下面展示一个基本的使用示例,使用os.path.dirname()函数获取当前文件的父目录:

import os
file_path = os.path.realpath(__file__)
father_path = os.path.abspath(os.path.dirname(file_path))
print(father_path)

上述代码中,首先使用os.path.realpath(__file__)获取当前文件的绝对路径,然后通过os.path.dirname()函数获取该路径的目录部分,最后使用os.path.abspath()函数获取该目录的绝对路径,从而获取当前文件的父目录。

三、os.path.dirname()函数的实际应用

1.在Python中创建文件和目录

在Python中,如果需要创建一个文件或者目录,可以使用os.path.dirname()函数获取指定目录的父目录,然后使用os.path.exists()函数判断该目录是否已经存在,如果不存在则使用os.makedirs()函数创建目录。

import os
file_path = "file/test.txt"
father_path = os.path.dirname(file_path)
if not os.path.exists(father_path):
    os.makedirs(father_path)
f = open(file_path, "w")
f.write("test")
f.close()

上述代码中,首先使用os.path.dirname()函数获取指定文件的父目录,然后使用os.path.exists()函数和os.makedirs()函数创建该目录,最后使用Python的文件操作函数,断言文件并在其中写入数据。

2.获取当前脚本文件的上级目录的路径

在Python中,如果需要获取当前脚本文件的上级目录的路径,可以使用os.path.dirname(__file__)函数获取当前文件的目录,然后使用os.path.abspath()函数获取该目录的绝对路径,从而获取当前文件的父目录。

import os
father_path = os.path.abspath(os.path.dirname(__file__))
print(father_path)

上述代码中,首先使用os.path.dirname(__file__)函数获取当前文件的目录,然后通过os.path.abspath()函数获取该目录的绝对路径,从而获取当前文件的父目录。

3.比较两个文件的路径

在Python中,如果需要比较两个文件的路径是否相同,可以使用os.path.dirname()函数获取两个文件路径的父目录,然后使用==运算符比较父目录是否相等,从而判断两个文件是否在同一个目录下。

import os
file_path1 = "file1/test.txt"
file_path2 = "file2/test.txt"
father_path1 = os.path.abspath(os.path.dirname(file_path1))
father_path2 = os.path.abspath(os.path.dirname(file_path2))
if father_path1 == father_path2:
    print("两个文件在同一个目录下")
else:
    print("两个文件不在同一个目录下")

上述代码中,首先使用os.path.abspath()函数和os.path.dirname()函数获取两个文件路径的父目录,然后使用==运算符比较父目录是否相等,从而判断两个文件是否在同一个目录下。

四、总结

os.path.dirname()函数是Python中常用的一个函数,它能够提取一个路径字符串的目录部分,并返回其中的父目录。该函数的应用非常广泛,例如可以用来创建文件和目录、获取当前脚本文件的上级目录的路径以及比较两个文件的路径等。