[python] Buducnost Pythonu: lambda, map, filter

Roman Miklos RMiklos na pss.sk
Úterý Listopad 14 12:11:16 CET 2006


>Pozeral som do zdrojakov pythonu, __iter__ vracia sam seba. Potom metoda 
>next() file objectu vola priamo Cckova fcia readahead_get_line_skip, 
>ktora nacita riadok.
ok takze cita to riadok po riadku a nie najprv vsetko naraz do zoznamu

Kedze file je alias pre open

print "file=%s" % file('data.txt') 
>file=<open file 'data.txt', mode 'r' at 0x00A1D3C8>
print "open=%s" % open("data.txt")
>open=<open file 'data.txt', mode 'r' at 0x00A1D3C8>

tak sa namiesto noveho 

for line in file('data.txt'):
    print line

da pouzit aj stare 

for line in open('data.txt'):
    print line


Tomu s tym zatvaranim nerozumiem, lebo ked urobim explicitne 
f.open('data.txt')
tak si to aj zavriem
f.open('data.txt')

ale ak explicitne neotvaram ako je to v tom pripade cez file() hore, tak 
nemam ziadnu referenciu na subor, ktoru by som mohol vymazat a nemam ani 
co zatvorit. Jedine, ze by to bolo tak dokonale, ze subor uz netreba 
zatvarat o com pochybujem :-)




Jan Janech <devel na atlas.sk> 
Sent by: python-bounces na py.cz
14.11.2006 11:24
Please respond to
Konference PyCZ <python na py.cz>


To
Konference PyCZ <python na py.cz>
cc

Subject
Re: [python] Buducnost Pythonu: lambda, map, filter






Roman Miklos wrote:
> for line in file('data.txt'):
>      print line
> 
> Mhm, to vyzera naozaj super, na moje pocudovanie tam netreba ani 
> otvarat/zatvarat file. 
> Len neviem ako to funguje. Nie je to nahodou to iste ako 
> 
> f = open("data.txt")
> for line in f.readlines():
>      print line
> f.close()
> 
> t. j., ze vsetky riadky sa nacitaju naraz do zoznamu a potom sa cez ten 
> zoznam iteruje? 
> To by bolo potom z hladiska vyuzitia pamati nieco uplne ine ako ten 
> priklad co som uviedol dole, 
> kde citam subor riadok po riadku.

Pozeral som do zdrojakov pythonu, __iter__ vracia sam seba. Potom metoda 
next() file objectu vola priamo Cckova fcia readahead_get_line_skip, 
ktora nacita riadok.

Co sa tyka otvarania suboru, open je len alias na file, takze otvarat ho 
treba :)

A co sa tyka zatvarania suboru (tiez som pozeral v zdrojakoch - pre 
istotu), ked zrusis referenciu na subor, tak sa automaticky zavrie.
Teda:

f = open("data.txt")
del f

a

f = open("data.txt")
f.close()

spravia to iste: zavru subor.
_______________________________________________
Python mailing list
Python na py.cz
http://www.py.cz/mailman/listinfo/python


Mgr. Ing. Roman MIKLÓ© 
Prvá stavebná sporiteµňa a.s. 
Bajkalská 30, P. O. Box 48 
829 48  Bratislava 25 
Tel.: +421/ 2 / 582 31 174 
Fax: +421/ 2 / 582 31 109 



Daląí informace o konferenci Python