目录
下述方法,基于pathlib.PurePath、pathlib.Path函数模块。
1. 组件元组:p.parts
将得到一个元组,包含路径中的各个组件;
如路径包含驱动器和根目录,则元组第一个元素即p.anchor返回值,其余参数为路径按照 '\'、'/'、转义字符 '\\' 顺序分割后的路径各个组件;
分割后组件,不包括 '\'、'/'、转义字符 '\\' ,单个 '.' 和 '\'、'/'、转义字符 '\\' 组合被视为一体去除,多个 '.' 则保留。
#如路径包含驱动器和根目录,则元组第一个元素即 p.anchor 返回值
p = Path('E:/David/Code/python/代码/text.txt')
p.parts
('E:\\', 'David', 'Code', 'python', '代码', 'text.txt')
p = Path('/David/Code/python./代码/text.txt')
p.parts
('\\', 'David', 'Code', 'python.', '代码', 'text.txt')
#如路径不包含驱动器和根目录
#参数为路径按照 '\'、'/'、转义字符 '\\' 顺序分割后的路径各个组件
p = Path('David/Code/python/代码/text.txt')
p.parts
('David', 'Code', 'python', '代码', 'text.txt')
p = Path('代码\\text.txt')
p.parts
('代码', 'text.txt')
p = Path(r'代码\text.txt')
p.parts
('代码', 'text.txt')
#单个 '.' 和 '\'、'/'、转义字符 '\\' 组合被视为一体去除,多个 '.' 则保留
p = Path('./David/Code/python/代码/text.txt')
p.parts
('David', 'Code', 'python', '代码', 'text.txt')
p = Path('../David/Code/python/代码/text.txt')
p.parts
('..', 'David', 'Code', 'python', '代码', 'text.txt')
2. 逻辑父路径
p.parent
显示路径的逻辑父路径;
从路径的最后往前遍历到前一个 '/'、'\' ,将斜杠之前的路径作为逻辑父路径返回;
当遍历到路径最前,为盘符+斜杠时,将盘符+斜杠返回;
当遍历到路径最前,为盘符+非斜杠时,将盘符返回;
当遍历到路径最前为斜杠时,返回 '/';
当遍历到最前为 './' 、':' 及单个 '.' 时,返回 '.'。
#从路径的最后往前遍历到前一个 '/'、&#