Ich versuche, nach einem bestimmten Muster zu suchen, um nur diejenigen Dateien zu erfassen, die mit dem Muster in einem bestimmten Ordner übereinstimmen. Ich brauche etwas Hilfe, um einen regulären Ausdruck zu entwickeln, der zwei Mustern entspricht - ich kann nicht eins finden, das zu beiden passt. Dies ist der ursprüngliche reguläre Ausdruck i verwendet:regulärer Ausdruck python - catch filenames
r"^([a-zA-Z]+)__?(\d+).(\d+).(\d+)\.xlsx"
Der Grund für diese Suchmuster ist, dass ich den Namen extrahiert, Datum (dd-mm-yy) und Full-Dateinamen in fünf Variablen, diese ermöglicht es mir, das Datum zu extrahieren, das in dem vollständigen Dateinamen enthalten ist, der sich auf das Eingabedatum der Datei bezieht.
for name, day, month, year, fullfilename in files
Jetzt versuche ich, die folgenden:
files = []
for f in os.listdir(drive):
match = re.search(r"^([a-zA-Z-]+)__?(\d+).(\d+).(\d+).xlsx$",f)
if match:
files.append(match.groups() + (f,))
Beispieldateinamen:
filename_19.01.17.xlsx
filename__04.01.17.xlsx
AB_TEST_DATA-OUTER_13.02.17.xlsx
So sollte die Extraktion folgende sein:
filename, 19, 01, 17, filename_19.01.17.xlsx
versuchte auch folgende :
Ist es möglich, ein Muster zu haben, das mit allen Dateien übereinstimmt? Oder sollte ich sie in zwei Muster teilen?
Könnte eine dumme Frage sein, aber was ist falsch mit einem einfachen '". * \. Xlsx "'? Gibt es andere xlsx-Dateien in diesem Verzeichnis, die Sie nicht möchten? – Bahrom
@Bahrom ja es gibt, die ich nicht übereinstimmen möchte – OAK