一、正文
对于一个Purepath对象或继承它的path对象,调用它的parents属性就会返回父目录的各级路径。
比如路径D:\BaiduNetdiskDownload\pycv-learning\yolov5-spot detection\test.py的父目录各级路径如下:
D:\BaiduNetdiskDownload\pycv-learning\yolov5-spot detection
D:\BaiduNetdiskDownload\pycv-learning
D:\BaiduNetdiskDownload
D:\
因为test.py文件在yolov5-spot detection文件夹中,那么调用该文件夹所属路径的上一级目录就相当于调用第一级父目录。
因此下面两种表达等效
import pathlib.Path
FILE = Path(__file__)
# 方式1
FILE.parents[0]
# 方式2
FILE.parent
# 是否相等?
print(FILE.parents[0] == FILE.parent)
# 输出结果为True
二、拓展
有哪些方法可以返回上一级目录呢?
对于普通路径字符串,在win系统中可以用\..\,或者os.path.dirname,或者os.pairdir(在win系统中等价于\..\)。
import os.path
path1 = r"C:\folder\subfolder\myfile.txt"
path2 = r"C:\Myfile.txt"
print(os.path.abspath(os.path.join(path1, os.pardir)))
print(os.path.abspath(os.path.join(path2, os.pardir)))
# 输出:
# C:\folder\subfolder
# C:\
对于Purepath对象,可以用parent或parents[0]属性。