在Python中,如何在路径中提取倒数第​​二个目录名?

d3p*_*3pd 6 python string split path slash

我有一个像下面这样的字符串:

/cvmfs/atlas.cern.ch/repo/sw/ASG/AnalysisTop/2.0.24/RootCore
Run Code Online (Sandbox Code Playgroud)

我该如何从这个字符串中提取"2.0.24"?我不确定如何使用斜杠拆分字符串(为了提取结果列表的倒数第二个元素),我不确定这是否是一个好方法.我现在拥有以下内容:

"/cvmfs/atlas.cern.ch/repo/sw/ASG/AnalysisTop/2.0.24/RootCore".split("/RootCore")[0].split("AnalysisTop/")[1]
Run Code Online (Sandbox Code Playgroud)

Sla*_*lam 6

'/cvmfs/atlas.cern.ch/repo/sw/ASG/AnalysisTop/2.0.24/RootCore'.split('/')[-2]
Run Code Online (Sandbox Code Playgroud)

  • 这不能跨所有文件系统移植。例如,Windows 使用 `\` 来分隔目录 (3认同)

AlG*_*AlG 6

你也可以这样做:

import os
x = "/cvmfs/atlas.cern.ch/repo/sw/ASG/AnalysisTop/2.0.24/RootCore"
os.path.split(os.path.split(x)[0])[1]
Run Code Online (Sandbox Code Playgroud)

结果是

'2.0.24'
Run Code Online (Sandbox Code Playgroud)


Dan*_*aun 5

跨平台解决方案:

import os
'your/path'.split(os.path.sep)[-2]
Run Code Online (Sandbox Code Playgroud)