Chciałbym pobrać plik za pomocą urllib i rozpakować plik w pamięci przed zapisaniem.Pobierz i rozpakuj spakowany plik gzip w pamięci?
To co mam teraz:
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())
To kończy pisanie pustych plików. Jak mogę osiągnąć to, czego szukam?
Updated Odpowiedź:
#! /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())
Co jest złego w dekompresji na dysku? – MattDMo
Dekompresuję się na dysk, po prostu nigdy nie pozwalając skompresowanym bajtom dotknąć dysku. – OregonTrail
Czy "compressedFile" kiedykolwiek się w to wkłada? – MattDMo