Ich versuche, einige Dateipfade von 2 list
Elemente in Python zuzuordnen. Diese Dateien haben einen Teil ihres Namens identisch, während die Erweiterung und einige zusätzliche Wörter unterschiedlich sind.Dateiname Zeichenfolge Vergleich in der Liste Suche schlägt fehl [Python]
Dies bedeutet, dass die Dateierweiterung, zusätzliche Zeichen und deren Position abweichen können. Die Dateien befinden sich in verschiedenen Ordnern, daher unterscheidet sich ihr Dateiname. Was ist genau gleich: ihre Nummerierung Index: 0033
, 0061
zum Beispiel.
Beispielcode:
original_files = ['C:/0001.jpg',
'C:/0033.jpg',
'C:/0061.jpg',
'C:/0080.jpg',
'C:/0204.jpg',
'C:/0241.jpg']
related_files = ['C:/0001_PM.png',
'C:/0033_PMA.png',
'C:/0033_NM.png',
'C:/0061_PMLTS.png',
'C:/0080_PM.png',
'C:/0080_RS.png',
'C:/0204_PM.png']
for idx, filename in enumerate(original_files):
related_filename = [s for s in (related_files) if filename.rsplit('/',1)[1][:-4] in s]
print(related_filename)
Bei filename = 'C:/0241.jpg'
sollte es []
zurückkehren, sondern es gibt alle Dateinamen aus related_files.
Aus Datenschutzgründen habe ich nicht die gesamte Filepath Post, sondern nur die Namen der Dateien. In diesem Beispiel funktioniert der Vergleich, aber für schlägt der gesamte Dateipfad fehl.
Ich nehme an, meine Vergleichsbedingung ist nicht korrekt, aber ich weiß nicht, wie man es schreibt.
Hinweis: Ich suche nach etwas mit so wenig Codezeilen wie möglich, um dies zu tun.
'während die Erweiterung und einige zusätzliche Wörter anders sind' Wir brauchen hier mehr Informationen. Was genau wird gleich sein, was kann anders sein? –
@LutzHorn mein Schlechter. Die Dateierweiterung und ihre Position können abweichen. Die Dateien befinden sich in verschiedenen Ordnern, daher unterscheidet sich ihr Dateiname. Was ist genau gleich: Ihr Nummerierungsindex: zum Beispiel '0033'. – Roxanne
Stimmt es, dass der Name jeder Datei mit einigen Zahlen beginnt, gefolgt von einem '_'? Sind diese Zahlen die eindeutige Kennung, die verwendet werden soll, um die zugehörige Datei zu finden? –