response = urlopen(url)
CHUNK = 16 * 1024
with open(file, 'wb') as f:
    while True:
        chunk = response.read(CHUNK)
if not chunk:
    break
f.write(chunk)
Потоковая передача больших двоичных файлов с urllib2 в файл