Python:优雅的方式来分割字符串,以便在字符串len未知时选择最后一个元素

Gia*_*ear 1 python performance split path

可能重复:
Python,从路径中提取文件名,无论os/path格式是什么

我有一个字符串:

filename = "C:\\mydata\\yourdata\\Finaldata.txt"
>>> filename
'C:\\mydata\\yourdata\\Finaldata.txt'
Run Code Online (Sandbox Code Playgroud)

当我不知道路径在哪里时,我希望分裂并选择最后一个元素.我写了这些行代码

from os import path
path.splitext(filename)[0].split("\\")[len(path.splitext(filename)[0].split("\\"))-1]
'Finaldata'
Run Code Online (Sandbox Code Playgroud)

但我在寻找是否有一种优雅的方式来做到这一点.提前感谢任何帮助Gianni

jdi*_*jdi 9

您可以使用:

os.path.basename(aPath)
Run Code Online (Sandbox Code Playgroud)

这将为您提供最后一个组件.如果您想拆分扩展名,请使用:

os.path.splitext(aBasename)
Run Code Online (Sandbox Code Playgroud)

使用os.path而不是字符串拆分它更具可移植性,因为它会为每个平台找出合适的分隔符.

如果它是*nix/osx,那\\将是/,然后你必须进行案例测试.os.path为你全力以赴.

最后,/对于路径字符串,在Windows python脚本中也是有效的.我建议只使用它们,因为它比转义反斜杠更容易:

filename = "C:/mydata/yourdata/Finaldata.txt"
Run Code Online (Sandbox Code Playgroud)