python查找字符串中的最后一个

python查找字符串中的最后一个,python,string,find,Python,String,Find,我正在寻找一种简单的方法来识别一个字符串在另一个字符串中的最后位置。。。例如。如果我有:file=C:\Users\User\Desktop\go.py 我想裁剪它,以便file=go.py 通常,我必须通过循环+查找语句运行C:\Users\User\Desktop\go.py,每次遇到\它都会询问。。。字符串中的最后一个\。。。一旦我找到最后一个\,我就会file=file[last\:len(file)] 我很想知道是否有更快更整洁的方法。。最好没有环。 类似file=[file('\',

我正在寻找一种简单的方法来识别一个字符串在另一个字符串中的最后位置。。。例如。如果我有:
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)]



谢谢:)

如果只是关于文件路径,您可以使用:


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

来进行要使用的路径名操作

对于此特定问题,您希望使用函数,该函数将返回路径的最后一个组件,如果路径以斜杠结尾(即文件夹而不是文件的路径),则返回空字符串

给出:

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

样本:

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

我同意Felix的观点,即应该使用
os.path.basename
处理文件路径。但是,您可能想看看内置的字符串函数

还有一个函数,它提供子字符串的最后一个索引

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

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

对于一般用途的情况(正如OP所说,他们喜欢拆分解决方案的推广)。。。。。。尝试
rfind(str)
功能

"myproject-version2.4.5.customext.zip".rfind(".")

编辑:抱歉,我还没意识到这条线有多旧…:-/

当处理w/filepath时,这是最好的解决方案。但请记住:python中还有一个
rfind
方法:正如我所说:
rfind
与文件路径的关系看起来不太好,
os.path
解决方案是最好的。其他答案都很好。。但我喜欢你的,因为它有更广泛的应用。。。不仅是在路径字符串中。谢谢男人:)这是一个不错的、干净的选项,不需要添加依赖项。我认为,如果你不得不在这种情况下处理操作系统,那么添加额外的导入将是更好的选择。你不应该拆分字符串,然后只获取其中的一部分。这既慢又让人困惑。一个简单得多的方法是
x[x.rfind('\\')+1://code>BTW,您可能希望避免变量名的名称
file
,因为它将隐藏内置文件对象。
>>> file = 'C:\Users\User\Desktop\go.py'
>>> before, separator, after = file.rpartition('\\')
>>> before
'C:\\Users\\User\\Desktop'
>>> separator
'\\'
>>> after
'go.py'
>>> file.rfind('\\')
21
"myproject-version2.4.5.customext.zip".rfind(".")