[python] Nastavení default kódování print-u
zu1234
zu1234 na seznam.cz
Úterý Březen 22 11:26:40 CET 2011
M=ECl jsem probl=E9m (takov=FD docela z=E1kladn=ED) jak napsat program
pro windows command-line s v=FDstupem na termin=E1l,
nebo (po p=F8esm=ECrov=E1n=ED v=FDstupu) do souboru.
Po p=F8esm=ECrov=E1n=ED v=FDstupu do souboru se toti=BE obsah sys.setdefa=
ultencoding=20
zm=ECn=ED na ascii a printy kon=E8=ED
chybou: 'ascii' codec can't encode characters
1) Vlastn=ED nastaven=ED - reload je nutn=FD
2) Nastaven=ED podle 'sm=ECru' v=FDstupu: pokud je v=FDstup p=F8esm=ECrov=
=E1n do=20
souboru tak cp1250 jinak cp852'
3) Funguje to i po p=F8evodu do exe pomoc=ED py2exe
4) N=E1sledn=EC funguj=ED spr=E1vn=EC i v=FDstupy z optparse
Snad to n=ECkomu pom=F9=BEe.
Ale mohl by mi n=ECkdo vysv=ECtlit pro=BE to nejde bez reload?
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
reload(sys)
if sys.stdout.isatty():
# V=FDstup jde na termin=E1l:
sys.setdefaultencoding('cp852')
else:
# V=FDstup jde do souboru:
sys.setdefaultencoding('cp1250')
print u'=B9=EDlen=E9'
Další informace o konferenci Python