mutagen

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
ceddy
User
Beiträge: 79
Registriert: Mittwoch 25. August 2010, 12:01

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
deets

Du hast doppelt-gemoppelte Anfuehrungszeichen - '" "'. Einmal reicht. Entweder, oder, ist egal.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ich würde auch mal sagen, dass dieser Thread ins "Allgemeine Fragen"-Forum verschoben gehört.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
ceddy
User
Beiträge: 79
Registriert: Mittwoch 25. August 2010, 12:01

Die doppelten Anführungszeichen sind nicht unbedingt egal, wenn ein Leerzeichen im Dateipfad ist ignoriert Windows den Teil, der dahinter steht
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.
Newcomer
User
Beiträge: 131
Registriert: Sonntag 15. Mai 2011, 20:41

Entweder ist der Pfad falsch angegeben oder der lesemodus ist falsch
Antworten