2013-11-01 4 views
5

を中断するのpython-要求に大きなファイルをダウンロードしてください。2.0.1ストリーミングのpython-リクエストVに大きなファイル(約1.5 GB)をダウンロードし、私はストリーミングに問題がある

with open("saved.rar",'wb') as file: 
    r = session.get(url,stream=True,timeout=3600) 
    for chunk in r.iter_content(chunk_size=1024): 
     if chunk: 
      file.write(chunk) 
      file.flush() 

私は私のVPS上で数回テストし、時には200MB、500MB、または800MBをダウンロードし、エラーなく保存したことがあります。それはタイムアウトに達していない、ちょうどダウンロードを終了するように停止しました。

ホスト私はこのファイルをダウンロードすることができますので、私はこのファイルをダウンロードするが、このファイルをダウンロードする必要はありません。

大きなファイルをpython-requestsでダウンロードして、そのファイル全体を100%確実にする方法はありますか?

@Edit

私はこの問題は、要求だけであり、urllibはを使用して、それを解決してきました。とにかく助けていただきありがとうございます。

+5

私たちは、あなたがファイル全体をダウンロードしているかどうかをチェックするためにダウンロードを開始する前に、ネットワークの問題などは、しかし、我々は、ファイルのサイズを知って、あなたはこの使用urllibは行うことができますあなたのアバターで写真に気を散らしている!笑!冗談だよ。 SOであまり一般的ではありません。このリンクをチェックしてください... http://stackoverflow.com/questions/16694907/how-to-download-large-file-in-python-with-requests-py –

+0

@Jack_of_All_Trades残念ながら、私はそこに何も見つかりませんでした。これは私と同じコードです。 – Emily

答えて

0

ダウンロードが中断される原因となるいくつかの問題が発生することがあります。

​​

使用して要求:

r = requests.get("http://python.org") 
r.headers["Content-Length"] 
+0

Okeyしかし、私はカールと同じ問題を抱えていないときに私はファイル全体を取得するために10回ファイルをダウンロードする必要があったので、何が間違っているのだろうかと思っています。 – Emily

+0

http://stackoverflow.com/a/7127162/2938650で説明されているように、os.fsync()が必要な場合があります。エラーと例外をログに記録してください。私は記憶のメッセージがないかもしれないと思う。 – adam

関連する問題