Télécharger de gros fichiers en python, avec des demandes

Les demandes est une très belle bibliothèque. J'aimerais l'utiliser pour télécharger de gros fichiers (>1 GO).
Le problème est qu'il n'est pas possible de garder tout le fichier en mémoire j'ai besoin de le lire dans les morceaux. Et c'est un problème avec le code suivant

import requests

def DownloadFile(url)
    local_filename = url.split('/')[-1]
    r = requests.get(url)
    f = open(local_filename, 'wb')
    for chunk in r.iter_content(chunk_size=512 * 1024): 
        if chunk: # filter out keep-alive new chunks
            f.write(chunk)
    f.close()
    return 

Par une raison quelconque, il ne fonctionne pas de cette façon. Il charge toujours de réponse dans la mémoire avant de l'enregistrer dans un fichier.

Mise à JOUR

Si vous avez besoin d'un petit client (Python 2.x /3.x) qui peut télécharger de gros fichiers par FTP, vous pouvez le trouver ici. Il supporte le multithreading & se reconnecte (il ne les connexions du moniteur) aussi des airs de prise paramètres de la tâche de téléchargement.