Seite 1 von 1

mutagen

Verfasst: Dienstag 30. August 2011, 20:26
von ceddy
Ich versuche mit mutagen den Titel von einem Lied abzufragen.
Dazu importiere ich zunächst das benötigte Modul:

Code: Alles auswählen

from mutagen.easyid3 import EasyID3
Später lese ich die Datei ein und lese den Titel aus:

Code: Alles auswählen

filetags=EasyID3('"D:/Cedrics_Dateien/Musik/Musik/%s"'%(file)) 
filetitle=filetags["title"]
Darauf bekomme ich ich folgende fehlermeldung:


Traceback (most recent call last):
File "D:\Cedrics_Dateien\python anwendungen\music-starter\starter.py", line 9,
in <module>
filetags=EasyID3('"D:/Cedrics_Dateien/Musik/Musik/test/%s"'%(file))
File "C:\Python27\lib\site-packages\mutagen\easyid3.py", line 167, in __init__

self.load(filename)
File "C:\Python27\lib\site-packages\mutagen\id3.py", line 109, in load
self.__fileobj = file(filename, 'rb')
IOError: [Errno 22] invalid mode ('rb') or filename: '"D:/Cedrics_Dateien/Musik/
Musik/test/Fever.mp3"'

kann jemand sagen woran das liegt?

mfg ceddy

Re: mutagen

Verfasst: Dienstag 30. August 2011, 20:35
von deets
Du hast doppelt-gemoppelte Anfuehrungszeichen - '" "'. Einmal reicht. Entweder, oder, ist egal.

Re: mutagen

Verfasst: Dienstag 30. August 2011, 20:43
von Hyperion
Ich würde auch mal sagen, dass dieser Thread ins "Allgemeine Fragen"-Forum verschoben gehört.

Re: mutagen

Verfasst: Mittwoch 31. August 2011, 09:53
von ceddy
Die doppelten Anführungszeichen sind nicht unbedingt egal, wenn ein Leerzeichen im Dateipfad ist ignoriert Windows den Teil, der dahinter steht

Re: mutagen

Verfasst: Mittwoch 31. August 2011, 10:32
von deets
Das ist nicht richtig, da verwechselst du etwas mit shell-argumenten. Da die Shell Strings an Leerzeichen separiert, muss man ihr - wenn Leerzeichen in *einem* Namen vorkommen - mitteilen, dass sie da was zusammen lassen soll.

Deshalb ist aber ein Dateiname auf Systemebene ein einziger String, und mit ohne Anfuehrungszeichen.

Re: mutagen

Verfasst: Sonntag 4. September 2011, 18:18
von Newcomer
Entweder ist der Pfad falsch angegeben oder der lesemodus ist falsch