PurePath
不访问实际系统文件“纯路径”,只负责对路径字符串进行操作
Path
访问真实系统文件的“真实路径”,判断对应文件是否存在,是否为文件,是否为目录
Path是PurePath的子类
1.PurePath
程序在创建PurePath和Path时,既可以传入单个字符串,也可传入多个路径字符串,PurePath会将它们拼接成一个字符串(文件路径)。
from pathlib import *
# 输出windows风格路径
p1 = PurePath('helloworld','some/path','info')
print(p1) # helloworld\some\path\inf
# 不传入参数,默认使用当前路径
p3 = PurePath()
print(p3) # .
# 传入的参数包含多个根路径,则只有最后一个根路径及后面的子路径生效
p4 = PurePath('/etc','/usr','lib64')
print(p4) # \usr\lib64
PurePath属性
# 访问parents属性:返回当前路径的全部父路径
pp = PurePath('abc/xyz/hello/world')
print(pp.parents[0]) # abc\xyz\hello
print(pp.parents[1]) # abc\xyz
print(pp.parents[2]) # abc
print(pp.parents[3]) # .
# 访问name属性:返回当前目录的文件名
print(pp.name) # world
pp = PurePath('abc/xyz/bb.txt')
print(pp.name) # bb.txt
2.Path
Path是PurePath的子类,它除了支持PurePath的各种操作、属性和方法之外,还会真正访问底层的文件系统,包括判断Path对应的路径是否存在,获取Path对应路径的各种属性(如是否只读、是文件还是文件夹等),甚至可以对文件进行读写
from pathlib import *
# 获取当前目录
p = Path('.')
# 获取上一级目录
p = Path('../')