In Python, wie sollte man den zweitletzten Verzeichnisnamen in einem Pfad extrahieren?

Ich habe eine Zeichenfolge wie die folgenden:

/cvmfs/atlas.cern.ch/repo/sw/ASG/AnalysisTop/2.0.24/RootCore 

Wie soll ich das "2.0.24" aus dieser Zeichenfolge extrahieren? Ich bin mir nicht sicher, wie man den String mit den Schrägstrichen aufspaltet (um das zweite letzte Element der resultierenden Liste zu extrahieren) und ich bin mir nicht sicher, ob das ein guter Ansatz wäre. Was ich jetzt habe, ist folgendes:

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

5 Solutions collect form web for “In Python, wie sollte man den zweitletzten Verzeichnisnamen in einem Pfad extrahieren?”

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

Gerade geteilt nach dem / Symbol dann den zweiten Index aus dem letzten drucken.

 >>> x = "/cvmfs/atlas.cern.ch/repo/sw/ASG/AnalysisTop/2.0.24/RootCore" >>> y = x.split('/') >>> y[-2] '2.0.24' 

Sie können auch:

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

Ergebnisse in

 '2.0.24' 
 import re str1 = "/cvmfs/atlas.cern.ch/repo/sw/ASG/AnalysisTop/2.0.24/RootCore" t = re.findall("[0-9][.]*",str1) print ("".join(t)) 

Sie können die regexfindall Methode verwenden. t gibt eine Liste zurück, also mit join() .

Ausgabe;

 >>> 2.0.24 >>> # print (t) >>> ['2.', '0.', '2', '4'] >>> 
 path = "/cvmfs/atlas.cern.ch/repo/sw/ASG/AnalysisTop/2.0.24/RootCore" path_dirs = path.split("/") >>>> path_dirs >>>> ['', 'cvmfs', 'atlas.cern.ch', 'repo', 'sw', 'ASG', 'AnalysisTop', '2.0.24', 'RootCore'] >>>> print path_dirs[-2] >>>> '2.0.24' 
  • Spalte nicht doppelte Wörter mit Python String Split ()?
  • Python str vs Unicode-Typen
  • Finde viel String im Text - Python
  • Türkische Zeichenkodierung
  • Anzeige von Unicode-Strings in Python
  • Wie kann ich einen String in Unicode in Python 2 ändern?
  • Pythongeneratorobjekte und .join
  • Python erkennt String-Byte-Codierung
  • Python ist die beste Programmiersprache der Welt.