898 Stimmen

Entpacken von Dateien in Python

Ich habe mir die zipfile Dokumentation aber ich konnte nicht verstehen, wie man entpacken eine Datei, sondern nur, wie man eine Datei zippt. Wie entpacke ich den gesamten Inhalt einer Zip-Datei in dasselbe Verzeichnis?

3 Stimmen

7 Stimmen

Für eine einzeilige Extraktion, siehe shutil.unpack_archive() .

1 Stimmen

Die Antwort von @fonini ist - ab 2021 - die richtige/beste: stackoverflow.com/a/64110098/687896

1700voto

Rahul Punkte 17306
import zipfile
with zipfile.ZipFile(path_to_zip_file, 'r') as zip_ref:
    zip_ref.extractall(directory_to_extract_to)

Das war's dann auch schon!

421voto

user1741137 Punkte 4581

Wenn Sie Folgendes verwenden Python 3.2 oder später:

import zipfile
with zipfile.ZipFile("file.zip","r") as zip_ref:
    zip_ref.extractall("targetdir")

Sie müssen nicht die schließen o try/catch mit, da es die Kontext-Manager Konstruktion.

182voto

fonini Punkte 2295

zipfile ist eine eher einfache Bibliothek. Solange Sie nicht die Besonderheiten benötigen, die sie bietet, können Sie sich damit begnügen shutil die übergeordneten Funktionen make_archive y unpack_archive .

make_archive ist bereits beschrieben in こん Antwort. Was die unpack_archive :

import shutil
shutil.unpack_archive(filename, extract_dir)

unpack_archive erkennt das Komprimierungsformat automatisch anhand der "Erweiterung" von filename ( .zip , .tar.gz , usw.), und auch make_archive . また、, filename y extract_dir kann jeder sein pfadähnlich Objekte (z.B. pathlib.Path Instanzen) seit Python 3.7.

52voto

Dan Breen Punkte 11912

Verwenden Sie die extractall Methode, wenn Sie Python 2.6+ verwenden

zip = ZipFile('file.zip')
zip.extractall()

25voto

simhumileco Punkte 26451

Sie können auch nur importieren ZipFile :

from zipfile import ZipFile
zf = ZipFile('path_to_file/file.zip', 'r')
zf.extractall('path_to_extract_folder')
zf.close()

Arbeiten in Python 2 y Python 3 .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X