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
.
shutil.copyfile()
and shutil.copyfileobj()
for the rescue:
shutil.copyfileobj(input, output)