SORU
22 Mayıs 2013, ÇARŞAMBA


Ne kadar büyük bir dosya indirmek için requests.py python ile?

Requests gerçekten güzel bir kütüphane. Yükleme büyük dosyaları (>için kullanmak istiyorum 1GB). Sorun Olası bölümleri okumam gerekiyor bellekteki tüm dosya tutmak için değil. Ve bu aşağıdaki kod ile ilgili bir sorun

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 

Nedense bu şekilde olmuyor. Hala bir dosyaya kaydedin önce belleğe yanıt yükler.

CEVAP
22 Mayıs 2013, ÇARŞAMBA


Değiştirilmesi gerektiğini anladım. Hile ile kurulmuşturstream = True(). Bu python sonra işlem bellek (30kb civarında statys ne olursa olsun yükleme dosyasının boyutu) emmek için durdu. @Danodonovan sen burada kullanım sözdizimi teşekkür ederim

def download_file(url):
    local_filename = url.split('/')[-1]
    # NOTE the stream=True parameter
    r = requests.get(url, stream=True)
    with open(local_filename, 'wb') as f:
        for chunk in r.iter_content(chunk_size=1024): 
            if chunk: # filter out keep-alive new chunks
                f.write(chunk)
                f.flush()
    return local_filename

Bakın http://docs.python-requests.org/en/latest/user/advanced/#body-content-workflow daha fazla referans.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Hak5

    Hak5

    7 EYLÜL 2005
  • Lena Danya

    Lena Danya

    11 NİSAN 2010
  • STITCHLESS TV how to sew your own style tutorials

    STITCHLESS T

    9 HAZİRAN 2011