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