Python查找字符串中最后一个字符

2 投票
5 回答
14796 浏览
提问于 2025-04-16 15:52

我想找一个简单的方法,来找到一个字符串在另一个字符串中的最后位置。比如说,如果我有:file = C:\Users\User\Desktop\go.py
我想把它处理成这样:file = go.py

通常情况下,我需要把C:\Users\User\Desktop\go.py放进一个循环里,用查找的方式,每次遇到一个\时,就问自己……这是字符串里的最后一个\吗?……等我找到最后一个\后,我就会用file = file[last\:len(file)]来截取文件名。
我很好奇有没有更快更简洁的方法来做到这一点……最好是不用循环。
比如说像这样:file = [file('\',last):len(file)]
如果没有像我上面说的那种方法……那我们能不能把循环放进[:]里?像这样:file = [for i in ...:len(file)]

谢谢 :)

5 个回答

5

我同意Felix的看法,处理文件路径时应该使用os.path.basename。不过,你可能也想看看Python自带的字符串函数rpartition

>>> file = 'C:\Users\User\Desktop\go.py'
>>> before, separator, after = file.rpartition('\\')
>>> before
'C:\\Users\\User\\Desktop'
>>> separator
'\\'
>>> after
'go.py'

还有一个rfind函数,它可以帮你找到某个子字符串最后出现的位置。

>>> file.rfind('\\')
21

我知道我来得有点晚,但因为在Google上搜索比如“在字符串中找到最后一个Python”时,这个问题是最常见的结果之一,所以我觉得补充这些信息可能会对某些人有帮助。

5

你可以把这个字符串分割成一个列表,然后获取这个列表的最后一个索引。

示例:

>>> file = 'C:\Users\User\Desktop\go.py'
>>> print(file.split('\\')[-1])
go.py
9

如果只是处理文件路径的话,你可以使用 os.path.basename 这个工具:

>>> import os
>>> os.path.basename(file)
'go.py'

不过,如果你不是在Windows系统上运行代码,那就得用 ntpath,而不是 os.path

撰写回答