tmallen <[EMAIL PROTECTED]> writes: > On Nov 4, 4:30 pm, [EMAIL PROTECTED] wrote: > > xlines = (line for line in open(filename) if line.strip()) > > I must be missing something: > > >>> xlines = (line for line in open("new.data") if line.strip()) > >>> xlines > <generator object at 0x6b648>
A generator <URL:http://www.python.org/dev/peps/pep-0255> is a sequence, but is not a collection. It will generate each item on request, rather than having them all in memory at once. for line in xlines: do something_knowing_the_line_is_not_blank(line) If you later *want* a collection containing all the items from the generator, you can feed the generator (or any iterable) to a type that can turn it into a collection. For example, to get all the filtered lines as a list: all_lines = list(xlines) Note that some generators (not this one, which will end because the file is finite size) never end, so feeding them to a constructor this way will never return. -- \ “It is far better to grasp the universe as it really is than to | `\ persist in delusion, however satisfying and reassuring.” —Carl | _o__) Sagan | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list