python - 使用requests下载大文件,设置steam=True,如何确保文件被完整下载?
PHP中文网
PHP中文网 2017-04-18 09:27:20
0
2
829

我使用requests下载文件,有时候会在网络情况不好的情况下不能完整的下载文件,该如何确保文件被完整的下载?

条件1: 文件的响应头中并没有content-length,我无法知道文件具体的大小

下载代码如下

r = requests.get(url, stream=True)
with open('test', 'wb') as fd:
    for chunk in r.iter_content(1024 * 100):
        fd.write(chunk)

网络问题不好重现,我测试的方法是,在本地使用python -m SimpleHTTPServer搭建服务端,然后用此代码下载大文件,然后手动关闭服务端,此代码并没有引发任何异常成功退出,下载的文件也是不完整的。

我希望这种不正常关闭连接能够触发异常处理,该如何做?

PHP中文网
PHP中文网

认证0级讲师

répondre à tous(2)
PHPzhong

Divisez-le en sections, puis rassemblez-le à nouveau

左手右手慢动作

Si vous souhaitez simplement vérifier l'intégrité du fichier téléchargé, vous pouvez vérifier la valeur MD5 du fichier une fois la boucle terminée. Cependant, l'implémentation doit transmettre le MD5 du fichier source à la connexion. fichier dans le répertoire de travail pour enregistrer la valeur MD5 de tous les fichiers du répertoire actuel, puis transmettez-la aux requêtes via les paramètres GET, tels que http://localhost/a.mp4?md5=xx...

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!