Seite 1 von 1

os.rename erweiterung

Verfasst: Montag 25. Mai 2009, 15:39
von Pascal
Hallo,

ich bin gerade dabei meine Musikdateien zu arbeiten.
die Titel sind nach folgendem Schema benannt:
youtube - interpret - titelname

ich habe bereits ein kleines Programm, mit denen ich das 'youtube' aus dem Titel entfernen kann. Dabei ist die os.rename - methode ganz praktisch.
Das ganze mit dem rename würde ich jetzt gerne auf Interpret übertragen. Dazu will ich das ganze zwischen den beiden '-' auslesen und dann das ganze bei "Interpret:" eintragen. (Das Feld von "Interpret: " ist übrigens leer)
Mein Problem ist: Wie kann ich den Interpret ändern?


Hoffe ich konnte mein Problem richtig schildern...
Vielen Dank
Pascal

Verfasst: Montag 25. Mai 2009, 15:43
von EyDu

Code: Alles auswählen

>>> _, interpret, titel = map(str.strip, "youtube - interpret - titel".split("-"))
>>> neuer_name = "%s von %s" % (interpret, titel)
>>> neuer_name
'interpret von titel'
?

Es existieren aber auch Interpreten und Titel welche ein Bindestrich im Namen haben.

Re: os.rename erweiterung

Verfasst: Montag 25. Mai 2009, 15:43
von Rebecca
Pascal hat geschrieben:und dann das ganze bei "Interpret:" eintragen.
Wenn du damit ID3-Tags (oder sonstwelche Tags) meinst, empfehle ich dir mutagen.

Re: os.rename erweiterung

Verfasst: Montag 25. Mai 2009, 15:52
von Pascal
Das mit dem Auslesen des Interpretens zwischen den '-' ist/war nicht das Problem
Pascal hat geschrieben: Mein Problem ist: Wie kann ich den Interpret ändern?
Und da scheitern ich (erneut) daran Mutagen zu installieren.
Es ist nicht das erste Modul, dass ich mir runterlade, aber hierbei scheitre ich irgendwie...




Wie soll ich das denn jetzt machen mit dem Installieren??
Steh grad völlig auf der Leitung :roll:

Re: os.rename erweiterung

Verfasst: Montag 25. Mai 2009, 18:25
von Leonidas
Pascal hat geschrieben:Wie soll ich das denn jetzt machen mit dem Installieren??
Steh grad völlig auf der Leitung :roll:
`easy_install mutagen``. Oder eben über das Paketmanagement deines Systemes, sofern es dort Mutagen als Paket gibt.

Verfasst: Montag 25. Mai 2009, 18:59
von snafu
@EyDu:

Warum an der Stelle ein Dummy-Objekt? Geht doch auch so:

Code: Alles auswählen

In [4]: import string

In [5]: filename = 'youtube - interpret - titel'

In [6]: interpret, titel = map(string.strip, filename.split('-'))[1:3]

In [7]: print titel, 'von', interpret
titel von interpret
Was aber natürlich nicht das Problem zusätzlicher Bindestriche löst.

Verfasst: Montag 25. Mai 2009, 19:30
von EyDu
Weil es zwei Zeichen spart :)

Verfasst: Montag 25. Mai 2009, 19:39
von BlackJack
@snafu: Die Funktionen aus dem `string`-Modul, die es auch als Methoden auf Zeichenketten gibt, sind "deprecated". Ab Python 3.0 gibt's die auch nicht mehr.