Die „passendste“ Datei mit Python ermitteln (fuzzywuzzy)
Für eine Anwendung habe ich eine Möglichkeit gesucht, die „passendste“ Datei in einem Verzeichnis zu suchen. Dies kann relevant sein, wenn die Anwendung eine bestimmte Datei in einem Verzeichnis erwartet, die aber leicht anders benannt wurde als es die Vorgabe erfordert.
Das folgende Beispielprogramm nutzt die Levenshtein-Funktionen der fuzzywuzzy Bibliothek, um die Datei zu finden, die das größte Maß an Gleichheit zum Muster besitzt.
Man kann natürlich auch RegExps benutzen, mit der fuzzywuzzy Bibliothek ist es aber auch recht intuitiv.
# -*- coding: utf-8 -*- import os from fuzzywuzzy import fuzz def guess_file(template, path): max_ratio = 0 file_max_ratio = '' for file in os.listdir(path): file_wo_suffix = os.path.splitext(file)[0] ratio = fuzz.ratio(file_wo_suffix, template) if ratio > max_ratio: max_ratio = ratio file_max_ratio = file return(file_max_ratio, max_ratio) print(guess_file('Meine Inputdaten','R:/')) |