第六章:文件系统-pathlib:文件系统路径作为对象-解析路径

6.2.3 解析路径
路径对象提供了一些方法和属性可以从路径名中抽取出部分值。例如parts属性可以生成根据路径分隔符值解析得到的一个路径段序列。

import pathlib

p = pathlib.PurePosixPath('/usr/local')
print(p.parts)

这个序列是一个元组,反映了路径实例的不可变性。
运行结果:

(’/’, ‘usr’, ‘local’)

有两种办法可以从一个给定的路径对象在文件系统层次结构中“向上”导航。parent属性指示一个新的路径实例,对应包含给定路径(os.path.dirname()返回的值)的目录。parents属性是一个迭代器,会生成一系列父目录引用,在路径层次结构中不断“向上”,直到到达文件系统的根目录。

import pathlib

p = pathlib.PurePosixPath('/usr/local/lib')

print('parent: {}'.format(p.parent))

print('\nhierarchy:')
for up in p.parents:
    print(up)

这个例子迭代处理parents属性并打印成员值。
运行结果:
在这里插入图片描述
可以通过路径对象的属性来访问路径的其他部分。Name属性包含路径的最后一部分,即最后一个路径分隔符后面的部分(与os.path.basename()生成的值相同)。suffix属性包含扩展名分隔符后面的值,stem属性包含名字中后缀之前的部分。

import pathlib

p = pathlib.PurePosixPath('./source/pathlib/pathlib_name.py')
print('path  : {}'.format(p))
print('name  : {}'.format(p.name))
print('suffix: {}'.format(p.suffix))
print('stem  : {}'.format(p.stem))

尽管suffix和stem的值与os.path.splitext()生成的值类似,但这些值只是基于name的值,而不是完整路径。
运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值