Bonjour,

Novice et autodidacte dans le langage python, je me tourne vers la communauté pour obtenir de l'aide sur un code qui doit me permettre de télécharger un fichier zip puis dans extraire l'ensemble de ces fichiers dans un dossier. Mon code est donc le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
if os.path.exists(repertoire):
	print ("dossier :  OK")
else :
	os.makedirs(repertoire)
 
#  Téléchargement du fichier
req = requests.get(url,stream=True)
#  Extrait le ZIP
zipfile= zipfile.ZipFile(BytesIO(req.content))
zipfile.extractall(repertoire)
La difficulté est qu'une fois sur 10, le traitement s'arrête soudainement et remonte des exceptions de ce genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Traceback (most recent call last):
  File "C:\Program Files\QGIS 3.34.7\apps\Python312\Lib\site-packages\requests\models.py", line 816, in generate
    yield from self.raw.stream(chunk_size, decode_content=True)
  File "C:\Program Files\QGIS 3.34.7\apps\Python312\Lib\site-packages\urllib3\response.py", line 1040, in stream
    yield from self.read_chunked(amt, decode_content=decode_content)
  File "C:\Program Files\QGIS 3.34.7\apps\Python312\Lib\site-packages\urllib3\response.py", line 1184, in read_chunked
    self._update_chunk_length()
  File "C:\Program Files\QGIS 3.34.7\apps\Python312\Lib\site-packages\urllib3\response.py", line 1119, in _update_chunk_length
    raise ProtocolError("Response ended prematurely") from None
urllib3.exceptions.ProtocolError: Response ended prematurely
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
  File "C:\Script\SUP\geo_sup.py", line 125, in <module>
    zipfile= zipfile.ZipFile(BytesIO(req.content))
                                     ^^^^^^^^^^^
  File "C:\Program Files\QGIS 3.34.7\apps\Python312\Lib\site-packages\requests\models.py", line 899, in content
    self._content = b"".join(self.iter_content(CONTENT_CHUNK_SIZE)) or b""
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\QGIS 3.34.7\apps\Python312\Lib\site-packages\requests\models.py", line 818, in generate
    raise ChunkedEncodingError(e)
requests.exceptions.ChunkedEncodingError: Response ended prematurely
J'ai écumé les différentes discussions notamment celle-ci :

https://stackoverflow.com/questions/...-with-requests

Néanmoins, j'ai quelques difficultés à assimiler le problème, ( il semble que ce soit lié à la tache qui demande des ressources mémoires au dela de la limite autorisée) et à le résoudre.

Pouvez-vous m'aider à ce sujet ?

D'avance un grand