[python] printy v češtině na WINDOWS/cmd konzoli nečitelné
petrofF
petr0ff na seznam.cz
Pondělí Květen 3 13:53:37 CEST 2010
On 28 dub, 21:48, Petr Přikryl <prik... na atlas.cz> wrote:
> petrofF
>
> >Bohužel, toto se týká jen příkazů print.
> >Pokud použiju raw_input(u"Zadej jméno...") hodí to chybu
>
> Zdá se, že jde o starou chybu, kterou jsem hlásil vývojářům skoro před
> 5 lety. Mrkni semhttp://www.py.cz/pipermail/python/2005-July/003022.html
> Jsou tam popsané projevy a možnost částečného řešení.
Zkusil jsem místo explicitního volání:
raw_input(s.encode(sys.stdout.encoding))
vytvořit soubor sitecustomize.py s předefinovanými vstupními funkcemi
------------[ sitecustomize.py ]--------------------------------
"""
- change raw_input() and input() commands if console present
(i.e. if sys.stdout.encoding is 'cp852')
- modification of prompt argument proceed only if it is a unicode
object
(non-unicode object is treated unchanged)
"""
import sys
if sys.stdout.encoding == "cp852":
try:
import __builtin__
original_raw_input = __builtin__.raw_input
original_input = __builtin__.input
def raw_input(prompt=''):
if type(prompt)==unicode:
prompt = prompt.encode(sys.stdout.encoding)
return original_raw_input(prompt)
def input(prompt=''):
return eval(raw_input(prompt))
raw_input.__doc__ = original_raw_input.__doc__
input.__doc__ = original_input.__doc__
__builtin__.raw_input = raw_input
__builtin__.input = input
except:
import traceback; traceback.print_exc()
-------------------------------------------------------------
Skripty (s unicode literály) se v WinDOS okně zobrazují bezchybně.
Jen si nejsem jistý jestli je úprava kompatibilní s různými běhovými
prostředími
(IDLE, PyWin, PyDev, konzole.py apod)
-petroff-
Další informace o konferenci Python