[python] Nastavení default kódování print-u

rajcze rajcze na gmail.com
Úterý Březen 22 11:39:07 CET 2011


<sarkasmus> Koukam ze problemy mas nejen s pythonem ;-) </sarkasmus>

Ale abych jen nekafral, tohle ti treba pomuze (pokud jsem si to zmet
znaku vylozil spravne ;-)

sys.stdout = codecs.getwriter("utf-8")(sys.stdout)



2011/3/22 zu1234 <zu1234 na seznam.cz>:
> 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'
>
>
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>



-- 
Rules of Optimization:
Rule 1: Don't do it.
Rule 2 (for experts only): Don't do it yet.


Další informace o konferenci Python