Metadaten aus Dateinamen extrahieren
Verfasst: Donnerstag 24. September 2015, 23:04
Hallo,
bevor ich wieder die Nacht zum Tage mache oder wahlweise meinen Kopf durch die Wand hämmere, hier eine Frage, die wahrscheinlich nicht so schwer zu beantworten ist:
Ich versuche aus den Dateinamen in einem Verzeichnis (ausschließlich MP3-Dateien) Metadaten zu extrahieren, um diese anschließend in die ID3-Tags zu schreiben. Für die BASH habe da schon gewisse Erfahrungen gemacht, aber da später noch ein Datenbankabfrage dazu kommt, beschäftige ich mich jetzt dann doch mal mit Python, weil die Kommunikation mit MySQL in der BASH einfach keinen Spaß macht. Hier das Skript (bzw. ein Teil daraus), das mir Kopfzerbrechen bereitet:
Und das ist die Ausgabe:
Ich denke, der Fehler liegt in folgender Zeile des Skripts:
split = datei.index('_')
Was mich nur wundert, ist, dass die Ausgabe aller Metadaten so weit zu funktionieren scheint, nur der alias funzt nicht. Ich komme gerade einfach nicht drauf. Ich denke, mit Reg Expressions wäre das Ganze sicher eleganter hinzubekommen, aber ich muss gestehen, dass ich mit denen auf Kriegsfuß stehe.
Könnte jemand einem blutigen Python-Anfänger unter die Arme greifen? Danke!
Kurt
bevor ich wieder die Nacht zum Tage mache oder wahlweise meinen Kopf durch die Wand hämmere, hier eine Frage, die wahrscheinlich nicht so schwer zu beantworten ist:
Ich versuche aus den Dateinamen in einem Verzeichnis (ausschließlich MP3-Dateien) Metadaten zu extrahieren, um diese anschließend in die ID3-Tags zu schreiben. Für die BASH habe da schon gewisse Erfahrungen gemacht, aber da später noch ein Datenbankabfrage dazu kommt, beschäftige ich mich jetzt dann doch mal mit Python, weil die Kommunikation mit MySQL in der BASH einfach keinen Spaß macht. Hier das Skript (bzw. ein Teil daraus), das mir Kopfzerbrechen bereitet:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf8 -*-
# Module laden
from glob import glob
# Metadaten aus Dateinamen extrahieren
for pfad in glob('/var/www/Aufnahmen/aufnahme_fertig_*.mp3'):
datei = pfad.lstrip('/var/www/Aufnahmen/aufnahme_fertig_')
split = datei.index('_')
alias = datei[0:split]
jahr = datei[split+1:split+5]
monat = datei[split+6:split+8]
tag = datei[split+9:split+11]
stunde = datei[split+12:split+14]
minute = datei[split+15:split+17]
print pfad
print datei
print alias
print jahr
print monat
print tag
print stunde
print minute
print "Index: "
print split
print ""
Code: Alles auswählen
# ./rb-add-record.py
/var/www/Aufnahmen/aufnahme_fertig_einslive_2015-09-25_20-05.mp3
slive_2015-09-25_20-05.mp3
slive
2015
09
25
20
05
Index:
5
/var/www/Aufnahmen/aufnahme_fertig_kiraka_2015-09-26_14-05.mp3
kiraka_2015-09-26_14-05.mp3
kiraka
2015
09
26
14
05
Index:
6
split = datei.index('_')
Was mich nur wundert, ist, dass die Ausgabe aller Metadaten so weit zu funktionieren scheint, nur der alias funzt nicht. Ich komme gerade einfach nicht drauf. Ich denke, mit Reg Expressions wäre das Ganze sicher eleganter hinzubekommen, aber ich muss gestehen, dass ich mit denen auf Kriegsfuß stehe.
Könnte jemand einem blutigen Python-Anfänger unter die Arme greifen? Danke!
Kurt