Seite 1 von 1

Problem mit dem Dateilesen

Verfasst: Montag 26. Juni 2006, 18:12
von boostpy2005
Hallo!

ich habe ein Problem beim Dateilesen, wenn die Datei als UTF-8 codiert wurde.

Gibt es eine einfache Methode, die Codingskennung zu entfernen oder auswerten?

(BTW, bei dem FileObjekt (fileObj= file("Dateipath", "r")) gibt es ein Attribut encoding, aber es wurde nicht gesetzt, obwohl es readonly ist!)

Vielen Danke für Hinweis oder Lösung:-)

Verfasst: Montag 26. Juni 2006, 18:27
von SigMA
Wo liegt genau dein Prob? Bei mir funktioniert das ... auch mit ner UTF-8 Datei ....

Code: Alles auswählen

>>> f = file("test", "r")
>>> f.read()
'asdsöüäadasdasdasdasd'

Verfasst: Montag 26. Juni 2006, 18:45
von boostpy2005
SigMA hat geschrieben:Wo liegt genau dein Prob? Bei mir funktioniert das ... auch mit ner UTF-8 Datei ....

Code: Alles auswählen

>>> f = file("test", "r")
>>> f.read()
'asdsöüäadasdasdasdasd'

Code: Alles auswählen

>>> txt =file("test.txt", "r")
>>> txt.read()
'\xef\xbb\xbf\xc3\x84nderungsvorschlag -> $SystemElement'
Ich bekomme nur codierten Text! Vielleicht liegt es bei der Einstellung!
ich habe obiges Beispiel direkt unter Eingabeaufforderungs-fenster probiert.

Verfasst: Montag 26. Juni 2006, 18:48
von SigMA
Wer suchet der findet
http://www.python-forum.de/topic-6348.html

SigMA

Verfasst: Montag 26. Juni 2006, 18:49
von boostpy2005
Ich habe gerade mit dem Modul codecs probiert.

Man kann die Kodierungskennung durch codecs.BOM_UTF8 (in meinem Fall) entfernen und den Text durch utf-8 dekodieren.

Das muss eine andere Methode geben, die viel einfach ist oder ?

Verfasst: Montag 26. Juni 2006, 18:51
von SigMA
Schau dir das oben an:

Code: Alles auswählen

f = file("test.txt", "r")
inhalt = f.read.encode('latin-1')
print inhalt

Verfasst: Montag 26. Juni 2006, 18:59
von boostpy2005
SigMA hat geschrieben:Schau dir das oben an:

Code: Alles auswählen

f = file("test.txt", "r")
inhalt = f.read.encode('latin-1')
print inhalt
Danke für deine Hilfe!

Code: Alles auswählen

ts = file("test.txt", "r")
ts.read.encode("latin-1")
Traceback (most recent call last):
  File "<input>", line 1, in ?
AttributeError: 'builtin_function_or_method' object has no attribute 'encode'
(BTW, wo hast du den Code geklaut:-( es funktioniert unter Window nicht (leider habe ich nur Windoof-Python!))

Verfasst: Montag 26. Juni 2006, 19:11
von DatenMetzgerX
würde das nicht so gehen ?

Code: Alles auswählen

f = file("test.txt", "r")
inhalt = f.read().encode('latin-1')
print inhalt

Re: Problem mit dem Dateilesen

Verfasst: Montag 26. Juni 2006, 19:14
von gerold
boostpy2005 hat geschrieben:ich habe ein Problem beim Dateilesen, wenn die Datei als UTF-8 codiert wurde.
Hi boostpy2005!

Vielleicht findest du hier etwas was dir weiter hilft: http://www.python-forum.de/topic-5095.html

mfg
Gerold
:-)