Read handle concatenation
Tim Chase
python.list at tim.thechases.com
Thu Nov 5 11:06:05 EST 2009
> I want to be able to take two or more open read handles and
> concatenate them into an object that behaves like a regular read
> handle (i.e. a file object open for reading), but behind the scenes
> it reads from the concatenated handles in sequence. I.e. I want
> the read-handle equivalent of the standard Unix utility cat. (The
> reason I can't use subprocess and cat for this is that I want to
> concatenate read handles that do not necessarily come from files.)
Sounds like itertools.chain would do what you want:
for line in itertools.chain(
file('a.txt'),
file('b.txt'),
):
do_something(line)
or more generically if you have a list of file objects:
lst = [file('a.txt'), file('b.txt'), ...]
for line in itertools.chain(*lst):
do_something(line)
-tkc
More information about the Python-list
mailing list