python文件下载不全_python requests 下载大文件不完整
目前我有一個腳本, 從帝聯的 CDN 外鏈獲取一下文件作為備份.
使用的是
Python 2.7.10
requests 2.8.1
目前碰到一個情況, 使用 requests 下載大文件的時候會出現下載文件不完整的情況, 出現的概率非常大, 應該不會是網絡原因導致的. 相關代碼概括如下:
requests.adapters.DEFAULT_RETRIES = 5
response = requests.get(url, stream=True)
status = response.status_code
if status == 200:
total_size = int(response.headers['Content-Length'])
with open('xxx', 'wb') as of:
for chunk in response.iter_content(chunk_size=102400):
if chunk:
of.write(chunk)
下載完畢后我會使用如下方式和上面的 total_size 進行對比
with open('xxx', 'r') as f:
if isinstance(f, file):
length = os.fstat(f.fileno()).st_size
if total_size == length:
True
else:
False
代碼邏輯如上. 但是對于 100M 以上的文件, 幾乎都是保存在本地的文件和獲取的響應頭里面的 content-length 不一致.
是我 requests 的用法不對嗎? 還是有其他更好的辦法可以保證文件能完整的下載呢?
總結
以上是生活随笔為你收集整理的python文件下载不全_python requests 下载大文件不完整的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算生日(贼快的算法)
- 下一篇: 2022年自考专业考试(计算机应用)微型