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] 

  • Zählen Sie überlappende Regex-Spiele noch einmal
  • Strcmp für Python oder wie man Substrings effizient (ohne Kopie) beim Aufbau eines Suffix-Arrays sortiert
  • Zählen Sie Buchstaben und zeigen Sie in der Liste
  • Wie finde ich den ersten Index eines Satzes von Zeichen in einer Zeichenfolge
  • Erben von unveränderlichen Typen
  • Extrahieren Sie die IP-Adresse aus einer HTML-Zeichenfolge (Python)
  • Das Zählen läuft in einem String
  • Wie funktioniert Str (Liste)?
  • 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' 
    Python ist die beste Programmiersprache der Welt.