Python:当字符串的 len 未知时,拆分字符串以选择最后一个元素的优雅方法 [重复]

Posted

技术标签:

【中文标题】Python:当字符串的 len 未知时,拆分字符串以选择最后一个元素的优雅方法 [重复]【英文标题】:Python: elegant way to split a string in order to pick the last element when the len of string is unknown [duplicate] 【发布时间】:2012-10-02 09:26:46 【问题描述】:

可能重复:Python, extract file name from path, no matter what the os/path format

我有一个字符串:

filename = "C:\\mydata\\yourdata\\Finaldata.txt"
>>> filename
'C:\\mydata\\yourdata\\Finaldata.txt'

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

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

但我正在寻找是否有一种优雅的方式来做到这一点。 提前感谢您的帮助 詹尼

【问题讨论】:

要获取列表的最后一个元素,您可以使用负索引。 my_list[-1] 是最后一个元素,my_list[-2] 是最后一个元素等等。 【参考方案1】:

你可以使用:

os.path.basename(aPath)

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

os.path.splitext(aBasename)

使用os.path 而不是字符串拆分它更便携,因为它会为每个平台找出合适的分隔符。

如果是*nix/osx,那些\\ 将是/,然后你必须进行案例测试。 os.path 为您解决所有问题。

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

filename = "C:/mydata/yourdata/Finaldata.txt"

【讨论】:

谢谢!!好帖子真的很有用。我可以做 os.path.splitext(os.path.basename(filename))[0] 来获得 'Finaldata'

以上是关于Python:当字符串的 len 未知时,拆分字符串以选择最后一个元素的优雅方法 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将java中的字符串拆分为固定长度的块

在JS中按类型拆分可能相邻的未知长度元素的字符串

java定义固定长度字符串_将java中的字符串拆分为固定长度的块

仅当分隔符存在于字符串上时,才使用两个不同的分隔符拆分 Python 字典中的字符串

将未知长度的字符串与已知长度的字符串进行比较

当出现任何给定的分隔符时拆分 JavaScript 字符串 [重复]