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:-)
Problem mit dem Dateilesen
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'
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de
http://www.leichtdio.de
-
- User
- Beiträge: 31
- Registriert: Freitag 31. März 2006, 14:15
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 habe obiges Beispiel direkt unter Eingabeaufforderungs-fenster probiert.
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de
http://www.leichtdio.de
-
- User
- Beiträge: 31
- Registriert: Freitag 31. März 2006, 14:15
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 ?
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 ?
Schau dir das oben an:
Code: Alles auswählen
f = file("test.txt", "r")
inhalt = f.read.encode('latin-1')
print inhalt
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de
http://www.leichtdio.de
-
- User
- Beiträge: 31
- Registriert: Freitag 31. März 2006, 14:15
Danke für deine Hilfe!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
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'
- DatenMetzgerX
- User
- Beiträge: 398
- Registriert: Freitag 28. April 2006, 06:28
- Wohnort: Zürich Seebach (CH)
würde das nicht so gehen ?
Code: Alles auswählen
f = file("test.txt", "r")
inhalt = f.read().encode('latin-1')
print inhalt
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi boostpy2005!boostpy2005 hat geschrieben:ich habe ein Problem beim Dateilesen, wenn die Datei als UTF-8 codiert wurde.
Vielleicht findest du hier etwas was dir weiter hilft: http://www.python-forum.de/topic-5095.html
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.