【问题标题】:Python: elegant way to split a string in order to pick the last element when the len of string is unknown [duplicate]Python:当字符串的 len 未知时,拆分字符串以选择最后一个元素的优雅方法 [重复]
【发布时间】: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] 是最后一个元素等等。

标签: python performance path split


【解决方案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'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-25
  • 2020-03-15
  • 1970-01-01
  • 2013-01-02
  • 2012-03-25
  • 2014-03-22
  • 2018-12-26
相关资源
最近更新 更多