[python] python ast.literal_eval a čeština

Pavel Kosina geon na post.cz
Úterý Září 15 15:16:01 CEST 2009


vylepšená verze:

# -*- coding: utf-8 -*-

text=u"Žluťoučký kůň pěl ďábelské ódy."
f=open("Kun.txt","w")
f.write(text.encode("cp1250"))    # převod z unicode do cp1250
f.close()

f=open("Kun.txt")
text2=f.read().decode("cp1250")    # převod z cp1250 na unicode
f.close()

print text,"\n",text2



Pavel Kosina napsal(a), dne 15.9.2009 15:11:
> Nevím, ast neznám, moc jsem to nepochopil, a myslím, že chyba může být 
> v něm. Pokud na něm netrváš, použij pickle.
>
> V tvém příkladu chybí na začátku deklarace kodování a při ukládání ti 
> to také musí házet chybu.
> Bezpečně funguje:
>
> # -*- coding: utf-8 -*-
>
> text=u"Žluťoučký kůň pěl ďábelské ódy."
> f=open("Kun.txt","w")
> f.write(text.encode("cp1250"))    # ok
> f.close()
>
> geon
>
> Luboš Melichar napsal(a), dne 15.9.2009 12:47:
>> dodavam tedy
>>
>> db =  ast.literal_eval(text)
>>
>> by mi mela prevest string na pozadovany pythonovsky typ, v tomto
>> pripade slovnik..
>>
>>  
>>>>> import ast
>>>>> ast.literal_eval("{'muffin' : 'lolz', 'foo' : 'kitty'}")
>>>>>         
>> {'muffin': 'lolz', 'foo': 'kitty'}
>>
>> http://docs.python.org/library/ast.html
>>
>>
>> 2009/9/15 Luboš Melichar <lubos.melichar na gmail.com>:
>>  
>>> Zdravim,
>>> jsem začátečník a tak dopředu prosím o trpělivost..
>>>
>>> Zkouším toto, v souboru mít uložený slovník, případně pole slovníků..
>>>
>>> {'cz': 'hezký', 'en': 'nice', 'de': 'schön'}
>>>
>>> vyčíst ze souboru, převést na slovník, pracovat s ním, uložit
>>>
>>> #VYCTENI ZE SOUBORU
>>> f = open("db.db")
>>> text = unicode(f.read(),('cp1250'))
>>> f.close()
>>>
>>> #PRACE S DB
>>> db =  ast.literal_eval(text)       #prevod stringu na seznam slovniku
>>> db['maďarština'] = 'keřmideretvář'
>>>
>>> #ZAPIS DO SOUBORU
>>> text2 = str(db)
>>> f = open("db2.db")
>>> f.write(text2.encode('cp1250'))  #ulozeni
>>> f.close()
>>>
>>> bohuzel s cestinou mam neprekonatelny problem, ve vystupnim souboru se
>>> mi to uklada v unicodu.
>>> kodovani v obou souborech mam samozrejme cp1250.
>>>
>>> diky za popostrceni
>>>
>>>     
>>
>>
>>
>>   
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>


Další informace o konferenci Python