Hallo
Y0Gi hat mir mal vor einem Jahr ein kleines Tool in Python geschrieben. Das Tool hat die Interpreten von mp3 Files eingelesen und Verzeichnisse mit dem Namen der Interpreten erstellt. Ausserdem wurden alle mp3's in das entsprechende Verzeichnis verschoben. Das Tool ist ultra nützlich und hat mir einen Haufen Arbeit gespart. Vielen Dank nochmals für das Y0Gi !
Nun hab ich ein weiteres Problem. Ich möchte nun von jedem Album ein eigenes Verzeichnis erstellen und dort drin die Playlist und die dazugehörigen mp3's haben.
Ich hab heute selbst versucht das Tool umzuschreiben hab es aber partout nicht fertiggebracht. dachte das wäre ein kleines Problem, bin aber beim umschreiben im Zusammenhang mit RE (regular Expressions) gescheitert. Hab auch in die doku geschaut. Diese ist leider nur auf englisch verfügbar und hat mir nicht viel geholfen.
Vielleicht kann ja einer von euch Programmier Gurus die Lösung aus dem Ärmel schütteln.
Nun so sehen alle meine Playlisten aus: Interpret - Album.m3u
und so alle meine mp3 Files: Interpret - Track.mp3
Das Programm müsste also den Teil nach dem Bindestrich bis zum Dateiformat auslesen und genau an diesem Problem bin ich gescheitert.
Hier der Code des Tools:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#!/usr/bin/env python
"""mp3sort.py -- Version 17-Oct-2004
Tries to extract the artist name from each mp3 file in the directory and moves
the file to a subdirectory with the artist's name. Feel free to change the
file mask and artist search expression to fit your needs.
Copyright (c) 2004 Jochen Kupperschmidt <webmaster@homework.nwsnet.de>
Released under the terms of the GNU General Public License
_ _
| |_ ___ _____ ___ _ _ _ ___ ___| |_
| | . | | ._| | | | . | _| . /
|_|_|___|_|_|_|___|_____|___|_| |_|_\
[url]http://homework.nwsnet.de/[/url]
"""
import glob
import os
import os.path
import re
pattern = re.compile('(.+) - .*')
for filename in glob.glob('*.m3u'):
if not os.path.isfile(filename):
continue
try:
dirname = pattern.match(filename).group(1).strip()
except AttributeError:
pass
else:
if not os.path.isdir(dirname):
os.mkdir(dirname)
os.rename(filename, os.path.join(dirname, filename))
|
Grüsse Paranoid Android