根据docs:
你可以通过pathlib.PurePath(*pathsegments)轻松做到这一点
"pathsegments 的每个元素都可以是一个字符串,代表一个
路径段,实现 os.PathLike 接口的对象
返回一个字符串,或者另一个路径对象。”
>>> PurePath('foo', 'some/path', 'bar')
PurePosixPath('foo/some/path/bar')
>>> PurePath(Path('foo'), Path('bar'))
PurePosixPath('foo/bar')
所以对你来说是:
pathA = pathlib.Path('source/parent')
pathB = pathlib.Path('child/grandchild')
pathAB = pathlib.PurePath(pathA, pathB)
Output: source/parent/child/grandchild
注意
"当给定几条绝对路径时,取最后一条作为锚点
(模仿 os.path.join() 的行为):"
>>> PurePath('/etc', '/usr', 'lib64')
PurePosixPath('/usr/lib64')
>>> PureWindowsPath('c:/Windows', 'd:bar')
PureWindowsPath('d:bar')
即使你这样做:
pathA = pathlib.Path('/source/parent')
pathB = pathlib.Path('/child/grandchild')
pathAB = pathlib.PurePath(pathA, pathB)
Pathlib 将像处理由字符串表示的路径对象一样处理 pathB。
Output: source/child/grandchild