Je voudrais télécharger un fichier en utilisant urllib et décompresser le fichier en mémoire avant de l'enregistrer.Télécharger et décompresser un fichier gzippé en mémoire?
C'est ce que j'ai en ce moment:
response = urllib2.urlopen(baseURL + filename)
compressedFile = StringIO.StringIO()
compressedFile.write(response.read())
decompressedFile = gzip.GzipFile(fileobj=compressedFile, mode='rb')
outfile = open(outFilePath, 'w')
outfile.write(decompressedFile.read())
Cela finit par écrire des fichiers vides. Comment puis-je réaliser ce que je suis après?
Mise à jour Réponse:
#! /usr/bin/env python2
import urllib2
import StringIO
import gzip
baseURL = "https://www.kernel.org/pub/linux/docs/man-pages/"
filename = "man-pages-3.34.tar.gz"
outFilePath = filename[:-3]
response = urllib2.urlopen(baseURL + filename)
compressedFile = StringIO.StringIO(response.read())
decompressedFile = gzip.GzipFile(fileobj=compressedFile)
with open(outFilePath, 'w') as outfile:
outfile.write(decompressedFile.read())
ce qui ne va pas avec le disque de décompression? – MattDMo
Je suis en train de décompresser sur le disque, ne laissant jamais les octets compressés toucher le disque. – OregonTrail
Est-ce que 'compressedFile' obtient déjà des byes? – MattDMo