Re: [python] Detekce kodovani zadaneho vstupu (bylo RE: soubor v jiné zankové sadě)

geon geon na post.cz
Pátek Září 30 10:03:59 CEST 2005


Petr Prikryl napsal(a):

>Navrhuji další úpravu "mazacího" skriptu...
>
>  
>
díky

>Kdysi mě velmi hnětlo, že jsem musel moduly používající
>raw_input() přizpůsobovat tomu, jestli je spouštím
>prostřednictvím nějakého windowsovského okna, nebo 
>prostřednictvím DOSového okna. Nelíbilo se mi, že
>někde musím při konverzi do unicode psát natvrdo 
>'cp1250' (z DOSového okna se používá jiné kódování,
>než ve windowsovém okně -- např. v konzole IDLE). 
>Jenže zrovna v tomto případě to jde udělat šikovněji.
>Tahle informace je ukryta pod sys.stdin.encoding.
>  
>

>    cesta = unicode(raw_input(), sys.stdin.encoding)
>  
>
když to udělám takto, tak mi to nefunguje (v DOSU). Píše to :

C:\Admin\update>deltree_xp.py c:\ěščřžýáí
Traceback (most recent call last):
  File "C:\Admin\update\deltree_xp.py", line 36, in ?
    if cesta and smazat(cesta):
  File "C:\Admin\update\deltree_xp.py", line 6, in smazat
    print os.listdir(cesta)
WindowsError: [Errno 3] SystÚm nem¨×e nalÚzt uvedenou cestu: 
u'c:\\\xfd\xdc\u015
4\xb0\xd7\u0159\xdf\xdd/*.*'

Když tam ale natvrdo dám místo sys.stdin.encoding --- "cp1250", tak to 
jede bez problémů...nevím proč....

Pavel






Další informace o konferenci Python