On May 13, 2008, at 12:28 PM, [EMAIL PROTECTED] wrote:

Hi - I have a list returned from popen/readlines, and am wondering how
to go about iterating over each item which was returned (rather than
currently having the whole lot returned).

so far:

f=os.open("./get_hostnames").readlines

returns ['host1 host2 host3 ... hostN\n]'

i'd like to be in a position to iterate through these, grabbing each
host.  I have played with transmuting to a str, and using split, and
this works, but I get the subscript brackets from the list output as
expected, as the list output is now a string literal, and this is not
what I want - and I think it's a bit long-winded to do a search 'n
replace on it - hence why I ask in the subject what's the best way.

f=str(f)
f.split()
["['host1","host2", ... ,"hostN\n']"]

If the file is really big, you may want not to construct an actual list with all the words, but instead use an iterator. If you define the function

def ichain(seq):
        for s in seq:
                for x in s: yield x

(which is often useful and I don't think it has been included in itertools) you can iterate lazily on the file:

hosts = ichain(s.split() for s in f)
for host in hosts:
        # ...

HTH,
Giuseppe

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to