Given the piece of code:
from glob import glob, iglob
for fn in glob('/*'):
print fn
print ''
for fn in iglob('/*'):
print fn
Reading the documentation for glob
, I see that glob()
returns a basic list of files and iglob
an Iterator
. However, I'm able to iterate over both and the same list of files is returned by each of them.
I've read the documentation on Iterator
, but it hasn't shed anymore light on the subject really!
So what benefit does iglob()
returning an Iterator
provide me over the list from glob()
? Do I gain extra functionality over my old friend the lowly list?
The difference is mentioned in the documentation itself:
Return an iterator which yields the same values as glob() without actually storing them all simultaneously.
Basically list will have all the items in memory. Iterator need not, and hence it requires less memory.