2017-08-01 15 views
0

私はサーバーにPOST要求を出してCSVファイルを生成し、POST要求の応答はファイルに書きたいCSVデータです。Python-requests - プログレスバーをダウンロード

私はCSVファイルのサイズを知ることはできません(10MB、100MB、または1000MBになる可能性があります)、コンテンツ長のヘッダーはありません。

私は、ダウンロードがサーバーにPOST要求を行い、CSVファイルを生成し、その応答をCSVファイルに書き込むという関数を書いています。しかし、私はプログレスバーに苦労しています。

プログレスバーを追加するにはどうすればよいですか?

r = requests.post(URL, data, stream=True) 
#Download progress here 
+0

が見ている:([プログレスバー-しばらく-ダウンロードファイルオーバーのhttp-と-リクエスト] https://stackoverflow.com/questions/37573483/progress-bar-ダウンロード中のhttp-with-requests中に)、または:[python-progress-bar-and-downloads](https://stackoverflow.com/questions/15644964/python-progress-bar-and-downloads) ) –

+0

私はそれらを見てきましたが、私の場合、レスポンスヘッダーにはContent-Lengthヘッダーがないので、プログレスバーを追加する方法を理解できませんでした。 – user6037143

答えて

0
def download_file(url, local_path="./"): 
    local_filename = url.split('/')[-1] 
    path = local_path + local_filename 

    r = requests.get(url, stream=True) 
    total_size = int(r.headers.get('content-length', 0)) 

    with open(local_filename, 'wb') as f: 
     for chunk in tqdm(r.iter_content(32*1024), total=total_size,unit='B', unit_scale=True): 
      if chunk: 
       f.write(chunk) 

    return path 
関連する問題