获取文件路径末尾部分

4 投票
7 回答
1548 浏览
提问于 2025-04-17 00:04

我找不到一个有效的方法来实现这个。最好的描述我想做的事情的方法就是通过例子,所以我们开始吧(假设 /bar/ 是父目录):

C:\foo\bar\baz\text.txt

这将是我的路径。我想要的是这个路径上到顶级父目录的所有内容。我需要的是一个脚本,能够做到这一点。换句话说,我只想获取

\bar\baz\text.txt

但是,使用 Split 方法对我来说不管用。它会把文件和路径分开,但不会像这样输出。我是不是错过了什么内置函数,还是说我没救了?谢谢!

7 个回答

1

我不太明白你说的“顶层父目录”是什么意思。你的顶层目录是 C:\。那是哪个东西的父目录呢?如果你想获取一个相对路径,从你当前工作目录的父目录开始,可以试试这个:

import os.path
os.path.relpath("C:\\foo\\bar\\baz\\text.txt", os.path.dirname(os.path.realpath('..')))
1

你可以使用 string.split() 这个方法:

>>> print '\\' + path.split('\\', 2)[-1]
\bar\baz\text.txt
1

我不太确定你想要什么,但你可以试试一个不太为人所知的函数rsplit,它是从字符串的右边开始分割的。

>>> filepath = r"C:\foo\bar\baz\text.txt"
>>> directories_deep = 3
>>> os.path.sep.join(filepath.rsplit(os.path.sep, directories_deep)[-directories_deep:])
'bar\\baz\\text.txt'

撰写回答