How to download directly to a file?

Chris Rebert clp2 at
Sat Sep 5 05:23:50 CEST 2009

On Fri, Sep 4, 2009 at 4:35 PM, kj< at> wrote:
> In <7gdgslF2ogf8rU1 at> "Diez B. Roggisch" <deets at> writes:
>>kj schrieb:
>>> I want to send a POST request and have the returned content put
>>> directly into a file.  Is there a way to do this easily in Python?
>>> I've been looking at the documentation for urllib2, but I can't
>>> see a direct way to do this, other than saving the returned contents
>>> to an in-memory variable and writing out the variable to a file.
>>> But this is precisely what I'd like to avoid.
>>You get a file-like object, what's wrong reading that chunkwise &
>>dumping that to a file? Or are 4KB blocksize to hard of a memory constraint?
> Actually, I discovered that urllib.urlretrieve does what I want.
> (I'd assumed that urllib2 superseded urllib, but apparently not.)

urllib2 is an "advanced" version of the library that gives you more
control over how things are done, but is also more complicated.
Regular urllib is simpler and easier to use, but you don't have as
much control either.
Neither supersedes the other, to my knowledge.


More information about the Python-list mailing list