Download der zip-Datei und extrahieren Sie Sie in Erinnerung mit Python ist3
Ich möchte eine zip-Datei herunterladen aus dem internet und entpacken Sie es.
Ich würde eher Anfragen. Ich will nicht auf die Festplatte schreiben.
Ich wusste, wie zu tun, dass in Python2 aber ich bin ratlos für Python ist3.3. Offenbar zipfile.Zipfile will ein file-ähnliches Objekt, aber ich weiß nicht, wie zu bekommen, dass aus, welche Anforderungen gibt.
Wenn Sie wissen, wie es zu tun mit das urllib.Anfrage, ich wäre neugierig zu sehen, wie Sie es auch tun.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich heraus, wie es zu tun:
Was mir fehlte :
request.content
sollte verwendet werden, um Zugriff auf die bytesio.BytesIO
ist die richtige Datei-ähnliches Objekt fürbytes
.zipDocument = zipfile.ZipFile(io.BytesIO(request.content))
und dann extrahieren/speichern:zipDocument.extractall()
Mithilfe Ersuchen, diese kann getan werden, sehr einfach.
Hilfe Von String.IO können Sie eine Datei-wie-Objekt für die Antworten content-Attribut.
Wenn Sie möchten, zu extrahieren, zu directory Sie können das ZipFile ist extractall () - Funktion
ZipFile
undresponse.content
erfordern bytes.io.ByteIO
ist das Ding zu verwendenzipDocument.extractall()
undio.BytesIO
. I. e.,zipfile.ZipFile(io.BytesIO(response.content))
(Hinweis: kann nicht Bearbeiten Sie die Antwort)Hier ist ein anderer Ansatz sparen Sie installieren zu müssen Anfragen: