Python查找字符串中最后一个字符
我想找一个简单的方法,来找到一个字符串在另一个字符串中的最后位置。比如说,如果我有: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
。