hallo,
im cygwin rufe ich das eyed3 (id3 tag editor) programm auf und übergebe utf8 kodiertere parameter.
jedoch kommt eine fehlermeldung:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xce in position 0: ordinal not in range(128)
muss ich python noch für utf8 konfigurieren?
wenn ja, dann sagt mir bitte wie.
Cygwin - eyeD3 (utf-8)
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo alpine!alpine hat geschrieben:im cygwin rufe ich das eyed3 (id3 tag editor) programm auf und übergebe utf8 kodiertere parameter.
Hast du auch den Parameter ``--set-encoding=utf8`` mit angegeben?
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo alpine!
In der Standardeinstellung kann Cygwin mit Umlauten nicht umgehen. Was erkennt das in Cygwin vorhandene Python als Standardencoding?
So wie hier wäre es mir unmöglich, Umlaute per Kommandozeile zu übergeben. Nur über eine Pipe (|) von einem anderen Programm...
Und wenn du das Programm von Windows aus aufrufst, dann ist das Encoding "cp1252" oder "cp850".
mfg
Gerold
In der Standardeinstellung kann Cygwin mit Umlauten nicht umgehen. Was erkennt das in Cygwin vorhandene Python als Standardencoding?
Code: Alles auswählen
Gerold@gp-work ~
$ python
Python 2.5.1 (r251:54863, May 18 2007, 16:56:43)
[GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import locale
>>> locale.getdefaultlocale()
(None, None)
>>> locale.getpreferredencoding()
'US-ASCII'
>>>
Und wenn du das Programm von Windows aus aufrufst, dann ist das Encoding "cp1252" oder "cp850".
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Der She-Bang wird unter Windows nicht funzen! Setze doch einfach ein "python" davor! Das sollte klappen, sofern es im Suchpfad steht! Ansonsten eben inkl. Pfad zu Python.
Zuletzt geändert von Hyperion am Dienstag 29. Januar 2008, 17:47, insgesamt 1-mal geändert.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Code: Alles auswählen
python.exe eye3D ...
Hyperion hat geschrieben:ggf. eben mit Pfad zu Python, wenn es nicht im Suchpfad steht (Kann man unter Win irgendwo in der Systemsteuerung bei irgend einem "erweitert"-Button einstellen)Code: Alles auswählen
python.exe eye3D ...
danke, geht perfekt!
Pfad angabe ist erforderlich!
pls close thread!
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo alpine!
eyeD3 lässt sich auch unter Windows installieren.
1.) Lade die aktuelle TAR-Datei mit den Dateien herunter:
http://eyed3.nicfit.net/releases/
2.) Entpacke die TAR-Datei z.B. mit 7Zip http://www.chip.de/downloads/7-Zip-4.57_13004776.html in irgendeinen Ordner.
3.) Kopiere den Ordner *src\eyeD3* in den Python-site-packages-Ordner. Der site-packages-Ordner liegt bei mir hier: *J:\Python25\Lib\site-packages*.
4.) Im site-packages-Ordner liegt jetzt der Ordner *eyD3*. In diesem befindet sich die Datei *__init__.py.in*. Diese muss nach *__init__.py* umbenannt werden.
Fertig ist die Installation. Schon kann eyD3 auch unter Windows direkt benutzt werden.
Und jetzt kannst du eyD3 direkt im Windows aus Python heraus verwenden und Unicode übergeben. In der eyeD3-Website http://eyed3.nicfit.net/ sind ein paar Beispiele dafür. Allerdings werde ich nicht ganz schlau daraus. Denn der Windows MediaPlayer scheint die neu geschriebenen Tags zu ignorieren, obwohl sie der MPlayer anzeigt.
mfg
Gerold
PS: Meine Versuche:
eyeD3 lässt sich auch unter Windows installieren.
1.) Lade die aktuelle TAR-Datei mit den Dateien herunter:
http://eyed3.nicfit.net/releases/
2.) Entpacke die TAR-Datei z.B. mit 7Zip http://www.chip.de/downloads/7-Zip-4.57_13004776.html in irgendeinen Ordner.
3.) Kopiere den Ordner *src\eyeD3* in den Python-site-packages-Ordner. Der site-packages-Ordner liegt bei mir hier: *J:\Python25\Lib\site-packages*.
4.) Im site-packages-Ordner liegt jetzt der Ordner *eyD3*. In diesem befindet sich die Datei *__init__.py.in*. Diese muss nach *__init__.py* umbenannt werden.
Fertig ist die Installation. Schon kann eyD3 auch unter Windows direkt benutzt werden.
Das ist keine Lösung -- das würde ich wieder rückgängig machen, da davon ALLE Python-Programme betroffen wären und evt. teilweise nicht mehr funktionieren könnten.alpine hat geschrieben:mein voriges problem hab ich schon gelöst da ich für python utf8 codierung unter sitecustomize.py eingestellt habe!
Und jetzt kannst du eyD3 direkt im Windows aus Python heraus verwenden und Unicode übergeben. In der eyeD3-Website http://eyed3.nicfit.net/ sind ein paar Beispiele dafür. Allerdings werde ich nicht ganz schlau daraus. Denn der Windows MediaPlayer scheint die neu geschriebenen Tags zu ignorieren, obwohl sie der MPlayer anzeigt.
mfg
Gerold
PS: Meine Versuche:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import eyeD3
def main():
#tag = eyeD3.Tag()
#mp3 = eyeD3.Mp3AudioFile(u"chaosradio_express_067.mp3")
#print dir(mp3)
#print dir(mp3.header)
#tag = mp3.getTag()
tag = eyeD3.Tag()
tag.link(u"chaosradio_express_067.mp3")
#print dir(tag)
print repr(tag.getArtist())
print repr(tag.getAlbum())
print repr(tag.getTitle())
#tag.clear()
#tag.setVersion(eyeD3.ID3_V2_4)
tag.setArtist(u"Über den Wolken1")
tag.setAlbum(u"Österreich in Ürrland")
tag.setTitle(u"Örmstâd")
tag.setTextEncoding(eyeD3.UTF_8_ENCODING)
tag.update()
#tag.update(eyeD3.ID3_V1_1)
#tag.update(eyeD3.ID3_V2_4)
#print dir(tag)
if __name__ == "__main__":
main()
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
und wie? möchte es gerne über command line starten!gerold hat geschrieben:Hallo alpine!
eyeD3 lässt sich auch unter Windows installieren.
1.) Lade die aktuelle TAR-Datei mit den Dateien herunter:
http://eyed3.nicfit.net/releases/
2.) Entpacke die TAR-Datei z.B. mit 7Zip http://www.chip.de/downloads/7-Zip-4.57_13004776.html in irgendeinen Ordner.
3.) Kopiere den Ordner *src\eyeD3* in den Python-site-packages-Ordner. Der site-packages-Ordner liegt bei mir hier: *J:\Python25\Lib\site-packages*.
4.) Im site-packages-Ordner liegt jetzt der Ordner *eyD3*. In diesem befindet sich die Datei *__init__.py.in*. Diese muss nach *__init__.py* umbenannt werden.
Fertig ist die Installation. Schon kann eyD3 auch unter Windows direkt benutzt werden.
bzw wo sollte ich den code einbinden?
die optimale lösung wäre wenns nur ein python.exe gibt und das programm eyed3. und nicht den ganzen ordner... [so wenig dateien wir nur möglich]
kein cygwin und keine istallation von python!
weil dann könnt ich es im script einfach so lösen:
python eyed3 -parameters...
verstehst was ich meine?
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo alpine!alpine hat geschrieben:und wie? möchte es gerne über command line starten!
[...]
kein cygwin und keine istallation von python!
Im TAR-Archiv im Ordner "bin" gibt es die Datei "eyeD3". Diese ist das Kommandozeilenprogramm. Entpacke die Datei "eyeD3" und nenne sie nach "eyed3.py" um. Achte darauf, dass dieser Dateiname **klein** geschrieben werden muss. Ansonsten funktioniert es nicht.
Also, nach der bereits beschriebenen Installation der Abhängigkeiten, kannst du diese Datei einfach wie ein Kommandozeilenprogramm verwenden.
Code: Alles auswählen
eyed3.py <optionen> fielname.mp3
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.