python在字符串中找到最后一个

Rhy*_*hys 2 python string find

我正在寻找一种简单的方法来识别另一个字符串中字符串的最后位置...例如.如果我有:file = C:\Users\User\Desktop\go.py
我想要这样做file = go.py

通常情况下,我必须C:\Users\User\Desktop\go.py通过循环+查找语句,并且Evey时间遇到\它会问...它是\字符串中的最后一个吗?...一旦我找到最后一个\,那么file = file[last\:len(file)]
我很想知道是否有更快的更简洁的方法来做这个...最好没有循环.
像file = [file('\',last之):len(file)]
类的东西如果没有像我上面所示的那样......那么我们可以将循环置于[:]某种方式之内.喜欢的东西file = [for i in ...:len(file)]

谢谢:)

Fel*_*ing 9

如果它只是关于文件路径,您可以使用os.path.basename:

>>> import os
>>> os.path.basename(file)
'go.py'
Run Code Online (Sandbox Code Playgroud)

或者,如果您没有在Windows上运行代码,则必须使用ntpath而不是os.path.

  • 处理w /文件路径时,这是最好的解决方案.但仅仅是为了记录:python中还有一个`rfind`方法:http://docs.python.org/library/stdtypes.html#str.rfind (4认同)

jos*_*gle 5

您可以将字符串拆分为列表,然后获取列表的最后一个索引.

样品:

>>> file = 'C:\Users\User\Desktop\go.py'
>>> print(file.split('\\')[-1])
go.py
Run Code Online (Sandbox Code Playgroud)

  • 你不应该拆分字符串,然后只取一部分.这既慢又麻烦.一个更简单的方法是`x [x.rfind('\\')+ 1:]`BTW,您可能希望避免使用变量名称的`file`,因为它会遮蔽内置文件对象. (2认同)

Eri*_*F89 5

我同意 Felix 关于文件路径应该使用os.path.basename. 但是,您可能想看看内置的字符串函数rpartition

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

还有一个rfind函数可以为您提供子字符串的最后一个索引。

>>> file.rfind('\\')
21
Run Code Online (Sandbox Code Playgroud)

我意识到我参加聚会有点晚了,但是由于这是在 Google 上搜索例如“在 str python 中查找最后一个”时的最佳结果之一,我认为它可能有助于某人添加此信息。