Dies ist mein erstes eigen Pythonwerk.
Ideen, Vorschläge, Verbesserungen sind willkommen.
Es benutzt "lame" um alle *.mp3's eines Ordners in niedrigere Bitraten zu konvertieren.
Die Ausgabe erfolgt in einem extra Ordner.
Es geht auf die Beschränkungen des in diesem PDA verbauten DSP ein:
- keine Variable Bitrate
- keine Leerzeichen Im Dateinamen
- minimal 128 kB/s
-------und dies nur, um das eigene Atrac3 Verfahren zu forcieren :-((
Limitierungen:
- Es dürfen nur mp3's im Eingangsordner sein.
- Da die Mehrzahl meiner mp3's (mindestens) ein Leerzeichen im Dateinamen hat erfolgt die Behandlung fuer alle Dateien gleich, ob nun Leerzeichen im Dateinamen enthalten sind oder nicht.
- Bearbeitete Dateien werden nicht automatisch geloescht
Zukunft:
- Abfrage, ob es sich wirklich um eine mp3 Datei handelt.
- Abfrage, ob wirklich Leerzeichen im Dateinamen enthalten sind.
- Bearbeitete Dateien im Eingangsordner automatisch löschen.
- Meldung bei erreichen eines Limits (zB: Groesse meiner Speicherkarte = 128MB).
- Übergabe der mp3-Tag's an die neue Datei.
- Automatisches Einbinden der Speicherkarte, mp3's draufschieben, automatisches Abmelden der Speicherkarte
- Anzeige der Gesamtlaufzeit
By: Mr_Snede 07.02.04
Version 0.01
Code: Alles auswählen
#!/usr/bin/python
import string, os
pfad_in = "/foo/bar/in"
pfad_out= "/foo/bar/out"
lame_aufruf = "lame --mp3input -q 9 " # -h = langsamer, subj. nicht besser
def esc_spaces(filename):
"fuegt vor Leerzeichen ein Escapezeichen ein"
filename_list = string.split(filename)
combStr = ""
for i in filename_list:
combStr = combStr + "\ " + i
filename = combStr[2:]
return filename
def no_spaces(filename):
"fuegt vor Leerzeichen ein Escapezeichen ein"
filename_list = string.split(filename)
print filename_list
filename = ""
for i in filename_list:
filename = filename + i
return filename
filenames = os.listdir(pfad_in)
filenames.sort() # nicht unbedingt noetig, aber nett
print 'Dateien im Ordner: ', filenames ,'\n'
for fname in filenames:
fname_esc = esc_spaces(fname)
fname_no = no_spaces(fname)
befehl = lame_aufruf + pfad_in +"/" + fname_esc+ " "+ pfad_out + "/" + fname_no
os.system(befehl)