Seite 1 von 1

Encoding Fehler, wie bekomme ich denn weg?

Verfasst: Sonntag 1. August 2010, 19:29
von player_ben
Hallo zusammen,
wenn ich diesen code mit einer console starte bekomme ich immer die encoding meldung mit der internetadresse. leider verstehe ich nicht 100pro was ich genau änder muss...
hier der code:

Code: Alles auswählen

from scipy import*
import scipy.io as io
from pylab import*

def read_shs_mat(file):
    fd=open(file,"r")
    print "reading",file
    print "header:"
    for i in range(6):
       print fd.readline(),   
    data=io.read_array(fd,separator=";",comment='"')
    return data[:,1:]

mit dem Code möchte ich eine txt einlesen, der diesen aufbau besitzt. Wo und wie muss ich denn nun dieses encoding enfügen.

Code: Alles auswählen

"zeile1"
"zeile2"
"zeile3"
"zeile4"
"zeile5"
"zeile6"
" ";x1;x2;x3;...
y1;z11;z12;z13;...
y2;z21;....
y3;z31;....
.
.
.
für eine Antwort bedanke ich mich...

Re: Encoding Fehler, wie bekomme ich denn weg?

Verfasst: Sonntag 1. August 2010, 19:42
von cofi
player_ben hat geschrieben:wenn ich diesen code mit einer console starte bekomme ich immer die encoding meldung mit der internetadresse. leider verstehe ich nicht 100pro was ich genau änder muss...
Ich verstehe leider 0 Prozent. Welche "encoding meldung"? Welche "internetadresse"?

Du willst dir aber ganz bestimmt mal PEP 8 anschaun.

Re: Encoding Fehler, wie bekomme ich denn weg?

Verfasst: Sonntag 1. August 2010, 21:43
von player_ben
cofi hat geschrieben:
player_ben hat geschrieben:wenn ich diesen code mit einer console starte bekomme ich immer die encoding meldung mit der internetadresse. leider verstehe ich nicht 100pro was ich genau änder muss...
Ich verstehe leider 0 Prozent. Welche "encoding meldung"? Welche "internetadresse"?

Du willst dir aber ganz bestimmt mal PEP 8 anschaun.
Der Fehler ist Non-ASCII charakter in file .... but no encoding declared see http://www.python.org/dev/peps/pep-0263/...

Das sind diese PEP Seiten, leider verstehe ich nich ganz was ich da machen soll..

Re: Encoding Fehler, wie bekomme ich denn weg?

Verfasst: Sonntag 1. August 2010, 22:48
von BlackJack
@player_ben: Du sollst in der Quelltextdatei die Kodierung eben jener Datei als Kommentarzeile angeben. In dem Format was in dem PEP beschrieben ist.

Re: Encoding Fehler, wie bekomme ich denn weg?

Verfasst: Sonntag 8. August 2010, 17:01
von player_ben
ok super es hat dann auch mal geklappt.

also man muss in den quell code in den ersten beiden zeilen folgendes schreiben:

Code: Alles auswählen

#!/usr/bin/python
# -*- coding: cp1252 -*-

die cp1252 hängt von eurem Editor ab:
was dort rein muss könnt ihr mit dem code erfahren:

Code: Alles auswählen

import locale
locale.getpreferredencoding()

Re: Encoding Fehler, wie bekomme ich denn weg?

Verfasst: Sonntag 8. August 2010, 17:42
von cofi
Nein das ist falsch, welches Encoding man in den Header schreibt ist abhängig davon welches Enconding die Datei _hat_. Das ist eine Editor-Einstellung keine System-Einstellung.

Re: Encoding Fehler, wie bekomme ich denn weg?

Verfasst: Sonntag 8. August 2010, 18:43
von noisefloor
Hallo,

dazu noch eine Frage:

Solange die Python-Installation das Encoding kennt spielt es auch (erstmal) kein Rolle, ob dass darunterliegende OS damit klar kommt?

Gruß, noisefloor

Re: Encoding Fehler, wie bekomme ich denn weg?

Verfasst: Sonntag 8. August 2010, 18:58
von cofi
Was meinst du damit?
Das OS sollte eigentlich nicht mit den eigentlichen Daten in Kontakt kommen, in dem Sinne, dass es sie interpretieren koennen muss. Bei Meta-Daten sieht die Sache evtl anders aus.

Re: Encoding Fehler, wie bekomme ich denn weg?

Verfasst: Sonntag 8. August 2010, 20:04
von noisefloor
Hallo,
Das OS sollte eigentlich nicht mit den eigentlichen Daten in Kontakt kommen, in dem Sinne, dass es sie interpretieren koennen muss.
Genau.

Theoretisches Beispiel: Python 2.6 auf Win95, Python-Datei ist UTF-8 kodiert (was Win95 AFAIK nicht kennt). Das Python-Skript läuft trotzdem korrekt, sofern ich nicht UTF-8 Daten ans Systeme gebe (z.B Ausgabe via print()).

Gruß, noisefloor