2012-04-02 7 views
0

Rückkehr Ich versuche, eine anständige Zahl von Id3 Album/Künstler Tags in (3500+) von Musikdateien über eine Verzeichnisstruktur wie so verbreitet zu beheben:Nested glob Verzeichnislisten nicht richtig

"Winamp Library/Artist Name/Album Name/Song.(mp3/flac/whatever)" 

Dieser Code nur druckt eine Liste von Künstlernamen im Basisverzeichnis "Winamp Library", was mache ich falsch?

for artist in glob.glob('Winamp Library/*'): 
    print(artist) 
    for album in glob.glob('Winamp Library/' + artist+ '/*'): 
     print (album) 

Ouput:

Winamp Library\Artist 1 
Winamp Library\Artist 2 

Wenn der Ausgang sollte sein:

Winamp Library\Artist 1 
Winamp Library\Artist 1\Album1 
Winamp Library\Artist 1\Album2 
Winamp Library\Artist 2 
etc 
+0

Sie könnten diese Aufgabe mit 'os.walk()' leichter finden. – kindall

Antwort

0

Wenn Sie erhalten die glob führen es den Teil des Musters sind Sie auch gab, so dass Sie versuche wirklich, in der zweiten Kugel zusammenzubringen:

'Winamp Library/Winamp Library/<ARTIST>/*' 

Ich vermute, Sie etwas mehr wie gewünscht:

for artist in glob.glob('Winamp Library/*'): 
    print(artist) 
    for album in glob.glob(artist + '/*'): 
     print (album) 

Beachten Sie, dass glob mehrere Ebenen auf einmal auch so konnte man glob auf 'Winamp Library/*/*' zum Beispiel tun können.

+0

Natürlich! Das funktioniert perfekt. Aber was ist nun der einfachste Weg, um nur den Künstler/das Album in einer Variablen zu speichern, damit ich es in das Id3-Tag schreiben kann? –

+1

@SamCoulter Die einfachste Möglichkeit, die Ihnen einfällt, ist die Aufteilung der Zeichenfolge mit .split() auf '/' – FatalError