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定义固定长度字符串_将java中的字符串拆分为固定长度的块