/ / dlaczego Python nie potrafi rozpakować zabezpieczonego hasłem pliku zip utworzonego przez winrar za pomocą metody zip? - python, zip, plik zip

dlaczego pyton nie może rozpakować pliku zip zabezpieczonego hasłem utworzonego przez winrar za pomocą metody zip? - python, zip, zipfile

Szukałem w sieci wysoko i nisko, ale wciąż nie mogłem znaleźć rozwiązania powyższego problemu. Czy ktoś tam wie, dlaczego i jeśli tak, jak można to zrobić?

psw="dg"

ZipFile.extractall("data.zip", None, psw)

Błąd, który otrzymałem:

TypeError: unbound method extractall() must be called
with ZipFile instance as first argument (got str instance instead)

Odpowiedzi:

13 dla odpowiedzi nr 1

Ponieważ źle tego używasz. :) Z docs:

Plik zip.Wypakuj wszystko([ścieżka [, członkowie [, pwd]]]))

Wyodrębnij wszystkich członków z archiwum do bieżącego katalogu roboczego. ścieżka określa inny katalog do wyodrębnienia. członkowie są opcjonalne i muszą być podzbiorem listy zwróconej przez listę nazw (). pwd to hasło używane do szyfrowania plików.

Powinieneś więc wywołać tę funkcję dla obiektu ZipFile, a nie jako metodę statyczną. I nie powinieneś podawać nazwy archiwum jako pierwszego argumentu. :)

w ten sposób „będzie działać:

from zipfile import ZipFile

with ZipFile("data.zip") as zf:
zf.extractall(pwd="dg")