一、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中常用的一个函数,它能够提取一个路径字符串的目录部分,并返回其中的父目录。该函数的应用非常广泛,例如可以用来创建文件和目录、获取当前脚本文件的上级目录的路径以及比较两个文件的路径等。