[python] Proměnný název souboru

Jakub Vysoky jakub na borka.cz
Čtvrtek Březen 3 14:36:54 CET 2011


jenom se pridam se souhlasem. magicky vytvaret promenne vetsinou
zpusobi dost neprehledny kod. ulozeni do dictionary je rozhodne lepsi
cesta.

2011/3/3 Visgean Skeloru <visgean na gmail.com>:
> Ehm, a proč si to prostě nehodil do seznamu?
>
> fileObjects = []
> for a in range (1,20):
>    filename = str(a) + ".txt"
>    fileObjects.append(open(filename, "w"))
>
> tím zároveň nebudeš špinit namespace spoustou proměnných...
>
> Nebo pakliže mermomocí chceš používat ty objekty podle názvů, můžeš použít
> asoc. pole:
>
> fileObjects = {}
> for a in range (1,20):
>    filename = str(a) + ".txt"
>    fileObjects[filename] = open(filename, "w")
>
> (Jen mi to přijde jako čistší způsob...)
>
> --
> PGP pub key:
>
> http://keyserver.pgp.com/vkd/SubmitSearch.event?SearchCriteria=visgean%40gmail.com
>            http://www.abclinuxu.cz/lide/visgean/gpg
>            A453 B7F3 33D9 3BE6 2B8A | F014 5347 EBAC 0A5A 3E92
> Jabber: visgean na jabber.org | visgean na jabber.cz
> Github: http://github.com/Visgean
>
>
>
> 2011/3/3 Ctibor.Plasek <Ctibor.Plasek na seznam.cz>
>>
>> Jednalo se mi o toto :
>> Chci vytvořit seznam souborů (1.txt , 2.txt, ....) a pak do nich
>> zapisovat. Problém byl právě v tom, že jsem chtěl aby proměnná, která
>> ukazuje na soubor, byla skutečně proměnná a abych mohl použít write. Takže
>> se to díky radě s "vars" podařilo vyřešit takto :
>> for a in range (1,20):
>>   f = 'soubor' + str(a)
>>   vars()[f] = open(str(a)+'.txt','w')
>>
>> a teď už můžu klidně použít stejným způsobem i zápis do souboru, který se
>> mi mění v závislosti na proměnné.
>>
>> Takže ještě jednou - díky všem za ochotu.
>>
>>
>>
>> > ------------ Původní zpráva ------------
>> > Od: Petr Přikryl <prikryl na atlas.cz>
>> > Předmět: Re: [python] Proměnný název souboru
>> > Datum: 03.3.2011 12:58:32
>> > ----------------------------------------
>> >
>> > Název proměnné vůbec nijak nesouvisí s objektem, na který odkazuje.
>> >
>> > soubor1 = open('soubor.txt', 'w')
>> > soubor1.write('text1n')
>> > ...
>> > soubor2 = soubor1
>> > ...
>> > soubor1 = cokoliv
>> > ...
>> > soubor2.write('text2n')
>> > soubor2.close()
>> >
>> > V soubor.txt budou oba řádky text1 i text2.
>> >
>> > Takže je potřeba si udělat jasno, jestli chceš nějak měnit
>> > jméno souboru (fyzického, na disku) nebo jmého proměnné,
>> > která zachycuje objekt typu soubor.
>> >
>> > Jméno souboru na disku můžu samozřejmě uložit do proměnné:
>> >
>> > jmenoSouboru = 'soubor.txt'
>> > f  = open(jmenoSouboru, 'w')
>> > f.write('textn')
>> > f.close()
>> >
>> > Petr
>> >
>> > ______________________________________________________________
>> > > Od: "Ctibor.Plasek" <Ctibor.Plasek na seznam.cz>
>> > > Komu: Konference PyCZ <python na py.cz>
>> > > Datum: 03.03.2011 12:18
>> > > Předmět: Re: [python] Proměnný název souboru
>> > >
>> > >To je sice pěkné, ale stále mi to neřeší nový název proměnné ( soubor1
>> > > =
>> > .....)
>> > >
>> > >> ------------ Původní zpráva ------------
>> > >> Od: zu1234 <zu1234 na seznam.cz>
>> > >> Předmět: Re: [python] Proměnný název souboru
>> > >> Datum: 03.3.2011 12:07:29
>> > >> ----------------------------------------
>> > >> I = 1
>> > >> open("x" + str(I) + ".txt", 'w').write('eee')
>> > >> I += 1
>> > >> open("x" + str(I) + ".txt", 'w').write('eee')
>> > >>
>> > > ZU
>> > >>
>> > > Dne 3.3.2011 11:53, Ctibor.Plasek napsal(a):
>> > >> > open jde udělat i takhle :
>> > >> > a = 1
>> > >> > F = open('text'+ str(a) + '.txt','w')
>> > >> >
>> > >> > ale právě s tím zápisem mám problém...
>> > >> >
>> > >> >
>> > >> >> ------------ Původní zpráva ------------
>> > >> >> Od: zu1234 <zu1234 na seznam.cz>
>> > >> >> Předmět: Re: [python] Proměnný název souboru
>> > >> >> Datum: 03.3.2011 11:45:15
>> > >> >> ----------------------------------------
>> > >> >> Asi to nepůjde tak jednoduše.
>> > >> >>
>> > >> >> FI = open('test.txt','w')
>> > >> >> FI_2 = open('test_2.txt','w')
>> > >> >> FI.write('aaa')
>> > >> >> FI_2.write('bbb')
>> > >> >>
>> > >> >> Leda to přebalit pomocí nějaké funkce, která by prohazovala
>> > >> >> file_objekty podle jednoho z parametrů.
>> > >> >>
>> > >> >> ZU
>> > >> >>
>> > >> >> Dne 3.3.2011 11:12, Ctibor.Plasek napsal(a):
>> > >> >> > Dobrý den.
>> > >> >> > Mohl by mi někdo poradit, jak vytvořit něco takového :
>> > >> >> >
>> > >> >> > soubor1.write('ahoj')
>> > >> >> >
>> > >> >> > ale tak, abych mohl měnit název souboru dle proměnné :
>> > >> >> >
>> > >> >> > soubor+str(1).write('ahoj')
>> > >> >> >
>> > >> >> > Děkuji Ctibor
>> > >> >> > _______________________________________________
>> > >> >> > Python mailing list
>> > >> >> > Python na py.cz
>> > >> >> > http://www.py.cz/mailman/listinfo/python
>> > >> >> >
>> > >> >> _______________________________________________
>> > >> >> Python mailing list
>> > >> >> Python na py.cz
>> > >> >> http://www.py.cz/mailman/listinfo/python
>> > >> >>
>> > >> >>
>> > >> >>
>> > >> > _______________________________________________
>> > >> > Python mailing list
>> > >> > Python na py.cz
>> > >> > http://www.py.cz/mailman/listinfo/python
>> > >> >
>> > >> _______________________________________________
>> > >> Python mailing list
>> > >> Python na py.cz
>> > >> http://www.py.cz/mailman/listinfo/python
>> > >>
>> > >
>> > >
>> > _______________________________________________
>> > >Python mailing list
>> > >Python na py.cz
>> > >http://www.py.cz/mailman/listinfo/python
>> > >
>> > _______________________________________________
>> > Python mailing list
>> > Python na py.cz
>> > http://www.py.cz/mailman/listinfo/python
>> >
>> >
>> >
>> _______________________________________________
>> Python mailing list
>> Python na py.cz
>> http://www.py.cz/mailman/listinfo/python
>
>
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>



-- 
Jakub Vysoky

mob: +420 605 852 377
jab: jakub.vysoky na gmail.com
icq: 109248375
twit: https://twitter.com/kvbik


Další informace o konferenci Python