Python 3.x und sys.stdin.encoding

01/11/2010 - 20:45 von Sebastian Humenda | Report spam
Hallo,

ich habe eines meiner kleineren Skripts auf Python 3(.1) umgestellt. Das
verarbeitet Daten von stdin und schreibt auf stdout. Locale ist hier UTF-8.
Gibt es eine Möglichkeit mit Python herauszufinden, welches Encoding eine
Datei (oder stdin) hat? Falls nicht, wie kann ich sys.stdin.encoding setzen,
Python meldet mir, es sei readonly.




import sys
f=sys.stdin
f.encoding='iso-8859-15'






Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: readonly attribute










==
Danke
Gruß
Sebastian
 

Lesen sie die antworten

#1 Peter Otten
01/11/2010 - 23:16 | Warnen spam
Sebastian Humenda wrote:

ich habe eines meiner kleineren Skripts auf Python 3(.1) umgestellt. Das
verarbeitet Daten von stdin und schreibt auf stdout. Locale ist hier
UTF-8. Gibt es eine Möglichkeit mit Python herauszufinden, welches
Encoding eine Datei (oder stdin) hat?



Martin von Löwis hat in comp.lang.python auf

http://chardet.feedparser.org/

hingewiesen. Ich hab es noch nicht ausprobiert.

Falls nicht, wie kann ich
sys.stdin.encoding setzen, Python meldet mir, es sei readonly.



Vielleicht so?

import sys
import io
encoding = sys.argv[1]
instream = io.open(sys.stdin.fileno(), "r", encoding=encoding)
print(instream.read())

Peter

Ähnliche fragen