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?
Antworten
Zu viele Anzeigen?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.
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.
- See previous answers
- Weitere Antworten anzeigen
3 Stimmen
Verwandt: Dateien rekursiv entpacken stackoverflow.com/questions/28339000/ & stackoverflow.com/questions/36285502/
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