从字符串中提取子串,Python

3

我有一个指向某个文件的路径:

'home/user/directory/filename'

我想获取文件名-子部分。主要问题是我不知道字符串的长度,也不知道文件名-子部分的长度。我只知道文件名位于字符串末尾,在最后一个斜线 / 后面。由于我想从PC上的每个目录中获取文件名,所以该字符串中斜杠的数量可能是绝对随机的。
因此,目前我看不到常规的索引提取方法,例如:
string[number:]

有任何想法吗?
2个回答

5
要获取文件名,请使用os.path.basename

返回路径 path 的基本名称。 这是将 path 传递给 split() 函数后返回的一对中的第二个元素

from os import path

pth = 'home/user/directory/filename'
print(path.basename(pth))
filename

或者使用 str.rsplit:
 print(pth.rsplit("/",1)[1])
 filename

如果您要从最后一次出现的位置索引字符串,则可以使用rindex函数:
print(pth[pth.rindex("/") + 1:])

另一个小建议:将该引用放入引用 > 块中。它会看起来更加明亮和干净。 - Bhargav Rao
@BhargavRao,你是一个严格的任务大师 ;) - Padraic Cunningham
想象一下,如果我成为某个大学的校长。那些学生将会是!@#$ - Bhargav Rao
1
@BhargavRao,哈哈,是的,我仍然记得我们给一些老师取的可爱名字。 - Padraic Cunningham

4

您也可以尝试以下方法:

>>> import os
>>> s = 'home/user/directory/filename'
>>> os.path.split(s)[1]
'filename'

re.match(r"(.*)/(.*)",s).group(2) - Bhargav Rao

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接