如何使用pathlib去除路径首斜杠且不进行字符串操作?
解决方案
可以通过提取路径的parts属性并忽略第一个空元素(对应根目录的斜杠),再重新组合成相对路径的方式实现,完全不需要字符串操作:
from pathlib import Path path = Path('/home/user/dir1/some.txt') parent_path = path.parent # 绝对路径的parts第一个元素是空字符串,取从第二个开始的部分 target_path = Path(*parent_path.parts[1:]) print(target_path) # 输出: home/user/dir1
原理说明
- 对于绝对路径,
pathlib.Path的parts属性会将路径拆分为元组,根目录的斜杠对应元组的第一个空字符串元素。比如PosixPath('/home/user/dir1')的parts是('', 'home', 'user', 'dir1')。 - 通过切片
parts[1:]去掉第一个空元素,再用Path(*...)将剩余部分重新组合成相对路径,自然就没有开头的斜杠了。
内容的提问来源于stack exchange,提问作者prachi sutane
相关产品推荐
相关产品推荐

