Hallo,
ich muss eine Zip-Datei entpacken, die etwa 30 GB groß ist. Beim Entpacken wird nur ein Unterverzeichnis ohne die betreffenden Dateien entpackt. Nach mehrfachen Tests scheint es mir, als ob die Größe hier hinderlich ist. Bei einem ähnlich aufgebauten Zip-File mit etwa 2GB Größe wird alles ordentlich entpackt. Was muss ich eventuell berücksichtigen?
MfG
Entpacken einer sehr großen Zip-Datei
Hallo,
hier mein Programm:
Und das ist auf der Console zu sehen:
MIB31_EUSDS.SDS/VDE/SM/country.db 2021-11-30 11:17:54 292864
MIB31_EUSDS.SDS/VDE/SM/ITI/ 2022-06-06 09:11:02 0
MIB31_EUSDS.SDS/VDE/SM/ITI/country.fcf 2021-11-30 11:17:52 83719
MIB31_EUSDS.SDS/VDE/TR/ 2022-06-06 09:11:04 0
MIB31_EUSDS.SDS/VDE/TR/country.db 2021-11-30 11:17:36 137049088
MIB31_EUSDS.SDS/VDE/TR/TRT/ 2022-06-06 09:11:12 0
MIB31_EUSDS.SDS/VDE/TR/TRT/country.fcf 2021-11-30 11:17:20 25957857
MIB31_EUSDS.SDS/VDE/VA/ 2022-06-06 09:11:12 0
MIB31_EUSDS.SDS/VDE/VA/country.db 2021-11-30 11:16:48 18432
MIB31_EUSDS.SDS/VDE/VA/ITI/ 2022-06-06 09:11:14 0
MIB31_EUSDS.SDS/VDE/VA/ITI/country.fcf 2021-11-30 11:16:48 9041
MIB31_EUWO.UR5001/BMD.NDS 2021-11-30 11:21:34 458752
MIB31_EUWO.UR5001/CONTENT.CFG 2021-11-30 11:22:34 723
MIB31_EUWO.UR5001/DTM.NDS 2021-11-30 11:22:32 1029660672
MIB31_EUWO.UR5001/NAME.NDS 2021-11-30 11:22:36 163840
MIB31_EUWO.UR5001/OVERALL.NDS 2021-11-30 11:22:34 8192
MIB31_EUWO.UR5001/PACKAGE.CFG 2021-11-30 11:22:36 1871
MIB31_EUWO.UR5001/PRODUCT.NDS 2021-11-30 11:21:32 24576
MIB31_EUWO.UR5001/ROOT.NDS 2021-11-30 11:22:36 4096
PACKAGE.SLIST 2021-11-30 09:02:26 134858
Traceback (most recent call last):
File "\\DS216J-2\Download\Skoda\unzip.py", line 11, in <module>
zip.extractall('temp')
File "C:\Program Files\Python310\lib\zipfile.py", line 1645, in extractall
self._extract_member(zipinfo, path, pwd)
File "C:\Program Files\Python310\lib\zipfile.py", line 1698, in _extract_member
with self.open(member, pwd=pwd) as source, \
File "C:\Program Files\Python310\lib\zipfile.py", line 1571, in open
return ZipExtFile(zef_file, mode, zinfo, pwd, True)
File "C:\Program Files\Python310\lib\zipfile.py", line 800, in __init__
self._decompressor = _get_decompressor(self._compress_type)
File "C:\Program Files\Python310\lib\zipfile.py", line 699, in _get_decompressor
_check_compression(compress_type)
File "C:\Program Files\Python310\lib\zipfile.py", line 679, in _check_compression
raise NotImplementedError("That compression method is not supported")
NotImplementedError: That compression method is not supported
Erzeugt wurde im Dateisystem ein Verzeichnisbaum ohne jeglicher Dateien:
temp / MIB31_EU.ROOT / 3D
MfG
hier mein Programm:
Code: Alles auswählen
#! /usr/bin/env python3
targetdir="/volume1/Download/Skoda"
upd="OI_P73_EU_202225_Offline_Update"
from zipfile import ZipFile
with ZipFile(upd+".zip","r") as zip:
# Extract all the contents of zip file in current directory
zip.printdir()
zip.extractall('temp')
zip.close
MIB31_EUSDS.SDS/VDE/SM/country.db 2021-11-30 11:17:54 292864
MIB31_EUSDS.SDS/VDE/SM/ITI/ 2022-06-06 09:11:02 0
MIB31_EUSDS.SDS/VDE/SM/ITI/country.fcf 2021-11-30 11:17:52 83719
MIB31_EUSDS.SDS/VDE/TR/ 2022-06-06 09:11:04 0
MIB31_EUSDS.SDS/VDE/TR/country.db 2021-11-30 11:17:36 137049088
MIB31_EUSDS.SDS/VDE/TR/TRT/ 2022-06-06 09:11:12 0
MIB31_EUSDS.SDS/VDE/TR/TRT/country.fcf 2021-11-30 11:17:20 25957857
MIB31_EUSDS.SDS/VDE/VA/ 2022-06-06 09:11:12 0
MIB31_EUSDS.SDS/VDE/VA/country.db 2021-11-30 11:16:48 18432
MIB31_EUSDS.SDS/VDE/VA/ITI/ 2022-06-06 09:11:14 0
MIB31_EUSDS.SDS/VDE/VA/ITI/country.fcf 2021-11-30 11:16:48 9041
MIB31_EUWO.UR5001/BMD.NDS 2021-11-30 11:21:34 458752
MIB31_EUWO.UR5001/CONTENT.CFG 2021-11-30 11:22:34 723
MIB31_EUWO.UR5001/DTM.NDS 2021-11-30 11:22:32 1029660672
MIB31_EUWO.UR5001/NAME.NDS 2021-11-30 11:22:36 163840
MIB31_EUWO.UR5001/OVERALL.NDS 2021-11-30 11:22:34 8192
MIB31_EUWO.UR5001/PACKAGE.CFG 2021-11-30 11:22:36 1871
MIB31_EUWO.UR5001/PRODUCT.NDS 2021-11-30 11:21:32 24576
MIB31_EUWO.UR5001/ROOT.NDS 2021-11-30 11:22:36 4096
PACKAGE.SLIST 2021-11-30 09:02:26 134858
Traceback (most recent call last):
File "\\DS216J-2\Download\Skoda\unzip.py", line 11, in <module>
zip.extractall('temp')
File "C:\Program Files\Python310\lib\zipfile.py", line 1645, in extractall
self._extract_member(zipinfo, path, pwd)
File "C:\Program Files\Python310\lib\zipfile.py", line 1698, in _extract_member
with self.open(member, pwd=pwd) as source, \
File "C:\Program Files\Python310\lib\zipfile.py", line 1571, in open
return ZipExtFile(zef_file, mode, zinfo, pwd, True)
File "C:\Program Files\Python310\lib\zipfile.py", line 800, in __init__
self._decompressor = _get_decompressor(self._compress_type)
File "C:\Program Files\Python310\lib\zipfile.py", line 699, in _get_decompressor
_check_compression(compress_type)
File "C:\Program Files\Python310\lib\zipfile.py", line 679, in _check_compression
raise NotImplementedError("That compression method is not supported")
NotImplementedError: That compression method is not supported
Erzeugt wurde im Dateisystem ein Verzeichnisbaum ohne jeglicher Dateien:
temp / MIB31_EU.ROOT / 3D
MfG
Naja, die Fehlermeldung ist doch sehr eindeutige, oder? Das zip enthält Dateien komprimiert mit einem in Python nicht implementierten Verfahren. Geht also nicht. Entweder benutzt du also ein Kommandozeilen Tool (durch Python, mit subprocess), oder suchst nach einer 3rd party alternative. Vielleicht gibt’s da was.
- __blackjack__
- User
- Beiträge: 14069
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Anmerkung am Rande: Das ``zip.close`` am Ende bewirkt nichts, weil die `close()`-Methode gar nicht *aufgerufen* wird. Ist aber auch überflüssig, weil die ``with``-Anweisung ja schon dafür sorgt, dass am Ende des ``with``-Blocks die Datei geschlossen wird.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Für Zip-Dateien gibt es ja die Möglichkeit die Datei in einzelne Teile zu splitten ( Datei.zip, Datei.01, Datei.02 usw.). Vielleicht wäre so ein mehrteiliges Archiv ja eine Option die funktionieren könnte oder muss es unbedingt nur eine Datei sein ? Bei Zip-Dateien gibt es, soweit ich weiß, tatsächlich Begrenzungen was die Größe des Archivs und die Anzahl der komprimierten Dateien angeht.
- __blackjack__
- User
- Beiträge: 14069
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@bi3mw: Das Problem ist hier weder die Grösse des Archivs noch einzelner Dateien im Archiv. Kann es ja auch gar nicht sein, denn dieses Archiv existiert ja bereits. Die Beschränkungen werden mit den ZIP64-Erweiterungen des Formats im Grunde auch aufgehoben. Und diese Erweiterung kann das `zipfile`-Modul. Praktisch dürfte es also unmöglich sein, dass zu viele Dateien oder zu grosse Dateien ein Problem darstellen.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Hallo,
vielen Dank an alle.
Genau, die Zip-Datei wurde gedownloaded und kann daher nicht in mehrere Teile gezippt werden.
Also werde ich wohl dem Hinweis mit subprocess folgen. Mal sehen, ob ich das schaffe. Warum Python aber nicht mit allen Kompressionsarten umgehen kann, wird mir ein Rätsel bleiben.
Ein schönes Wochenende an alle!
vielen Dank an alle.
Genau, die Zip-Datei wurde gedownloaded und kann daher nicht in mehrere Teile gezippt werden.
Also werde ich wohl dem Hinweis mit subprocess folgen. Mal sehen, ob ich das schaffe. Warum Python aber nicht mit allen Kompressionsarten umgehen kann, wird mir ein Rätsel bleiben.
Ein schönes Wochenende an alle!
@Codo: Warum sollte Python das können? Du wirst auch mit einem beliebigen Programm ein 7zip File entpacken können.
Und wenn für das Zipfile mit einem Verfahren gepackt ist, das möglicherweise nicht frei verfügbar ist, wird das schwer.
Und wenn für das Zipfile mit einem Verfahren gepackt ist, das möglicherweise nicht frei verfügbar ist, wird das schwer.
- __blackjack__
- User
- Beiträge: 14069
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Codo: Das ist jetzt nicht wirklich mysteriös. Es hat halt noch keiner implementiert, entweder weil es eine sehr neue, oder eine eher exotische, oder eine lizenzrechtlich schwierigere Kompressionsart ist. Das Python-Modul kann den Originalalgorithmus (deflate), bzip2, und lzma.
Es gibt im Package Index ein paar Module die andere Kompressionsarten nachrüsten.
Es gibt im Package Index ein paar Module die andere Kompressionsarten nachrüsten.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari