Problem mit dem Dateilesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
boostpy2005
User
Beiträge: 31
Registriert: Freitag 31. März 2006, 14:15

Montag 26. Juni 2006, 18:12

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:-)
Benutzeravatar
SigMA
User
Beiträge: 181
Registriert: Sonntag 4. April 2004, 13:27
Wohnort: Freiburg
Kontaktdaten:

Montag 26. Juni 2006, 18:27

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
boostpy2005
User
Beiträge: 31
Registriert: Freitag 31. März 2006, 14:15

Montag 26. Juni 2006, 18:45

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.
Benutzeravatar
SigMA
User
Beiträge: 181
Registriert: Sonntag 4. April 2004, 13:27
Wohnort: Freiburg
Kontaktdaten:

Montag 26. Juni 2006, 18:48

Wer suchet der findet
http://www.python-forum.de/topic-6348.html

SigMA
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de
boostpy2005
User
Beiträge: 31
Registriert: Freitag 31. März 2006, 14:15

Montag 26. Juni 2006, 18:49

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 ?
Benutzeravatar
SigMA
User
Beiträge: 181
Registriert: Sonntag 4. April 2004, 13:27
Wohnort: Freiburg
Kontaktdaten:

Montag 26. Juni 2006, 18:51

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
boostpy2005
User
Beiträge: 31
Registriert: Freitag 31. März 2006, 14:15

Montag 26. Juni 2006, 18:59

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!))
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

Montag 26. Juni 2006, 19:11

würde das nicht so gehen ?

Code: Alles auswählen

f = file("test.txt", "r")
inhalt = f.read().encode('latin-1')
print inhalt
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Montag 26. Juni 2006, 19:14

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten