Welcome!

Reguläre Ausdrücke in Python

Für ein Programm in Python musste ich aus vielen Dateien innerhalb eines Ordners einen Graphen zusammenstellen, wobei die Parameter im Dateinamen vorzufinden waren:

beta=0.7_eps=0.14.npy

 

Um alle Dateien innerhalb eines Verzeichnisses auszulesen benutze ich das Modul glob in Verbindung mit dem Befehl glob

import glob

fileList = glob.glob('./*.npy')

fileList ist ein Array, welches mit den Standardwerkzeugen von Python bearbeitet werden kann. Nun möchte ich aus den Dateinamen noch die Parameter auslesen, hierfür benutze ich Pyhton's Modul für reguläre Ausdrücke re:

import re

for filename in fileList:
  result = re.search(r".*=(.*)_.*=(.*).*.npy", filename)
  beta, eps  = result.groups()

Kurze Erläuterung: re.search sucht nach einem Zeichenkettenmuster innerhalb des Strings filename Hierbei ist .* Platzhalter für beliebig viele Zeichen hintereinander Durch Klammern werden sogenannte Gruppen gebildet, die man sich anschließend ausgeben lassen kann, was ich mit dem untersten Befehl auch mache.

<< Zurück zur vorherigen Seite