分割路径以便在Python中包含文件名和两个目录的简洁方法?

时间:2018-03-31 19:58:41

标签: python filepath

分割路径的最简洁方法是什么,以便在Python中包含文件名和两个目录?

>>> path = r'/absolute/path/to/file.txt'
>>> os.path.dirname(path)

给出:

/absolute/path/to

虽然:

>>> from pathlib import Path
>>> path = r'/absolute/path/to/file.txt'
>>> Path(path).parents[1]

给出:

/absolute/path

给我的最简洁的策略是什么:

to/file.txt

2 个答案:

答案 0 :(得分:2)

>>> os.path.join(*pathlib.Path(path).parts[-2:])
'to/file.txt'

答案 1 :(得分:2)

这是一种方式。

path = r'/absolute/path/to/file.txt'

res = '/'.join(path.split('/')[-2:])

print(res)
# to/file.txt

不那么简洁,但更好的替代方案:

res = os.path.join(*os.path.normpath(path).split(os.sep)[-2:])