Best way to delimit a list?
Giuseppe Ottaviano
giuott at gmail.com
Tue May 13 09:17:40 EDT 2008
On May 13, 2008, at 12:28 PM, dannywebster at googlemail.com 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
More information about the Python-list
mailing list