Copying a stream in Python

Question:

How do I transfer the contents of a stream to another in Python?

The trivial solution would be

output.write(input.read())

but that fails if the input file is larger than the available memory (or even infinitely large); and it doesn’t work well when a partial copy is useful as well. Basically I’m looking for the equivalent of org.apache.commons.IOUtils.copy.

Asked By: phihag

||

Answers:

shutil.copyfile and shutil.copyfileobj for the rescue. See http://docs.python.org/library/shutil.html#module-shutil

Answered By: abbot
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.