Przeczytałem zipfile
dokumentację , ale nie mogłem zrozumieć, jak rozpakować plik, tylko jak go skompresować. Jak rozpakować całą zawartość pliku zip do tego samego katalogu?
Przeczytałem zipfile
dokumentację , ale nie mogłem zrozumieć, jak rozpakować plik, tylko jak go skompresować. Jak rozpakować całą zawartość pliku zip do tego samego katalogu?
Odpowiedzi:
import zipfile
with zipfile.ZipFile(path_to_zip_file, 'r') as zip_ref:
zip_ref.extractall(directory_to_extract_to)
To już wszystko!
from zipfile import ZipFile
. Podczas korzystania z niego nie trzeba już używać zipfile.ZipFile
i można go używać ZipFile(zip_file_name)
.
Jeśli używasz języka Python 3.2 lub nowszego:
import zipfile
with zipfile.ZipFile("file.zip","r") as zip_ref:
zip_ref.extractall("targetdir")
Nie musisz używać close ani próbować / catch z tym, ponieważ używa on konstrukcji menedżera kontekstu .
zipfile
+ pathlib
= wygrana. masz coś przeciwko, jeśli nieznacznie zaktualizuję twoją odpowiedź?
Użyj tej extractall
metody, jeśli używasz języka Python 2.6+
zip = ZipFile('file.zip')
zip.extractall()
Możesz także importować tylko ZipFile
:
from zipfile import ZipFile
zf = ZipFile('path_to_file/file.zip', 'r')
zf.extractall('path_to_extract_folder')
zf.close()
Działa w Python 2 i Python 3 .
import zipfile.ZipFile
generuje ModuleNotFoundError: No module named 'zipfile.ZipFile'; 'zipfile' is not a package
w 3.6.5. Jestem otwarty na błąd operatora, ale nie wiem, co to jest.
Spróbuj tego :
import zipfile
def un_zipFiles(path):
files=os.listdir(path)
for file in files:
if file.endswith('.zip'):
filePath=path+'/'+file
zip_file = zipfile.ZipFile(filePath)
for names in zip_file.namelist():
zip_file.extract(names,path)
zip_file.close()
ścieżka: rozpakuj ścieżkę pliku
import os
zip_file_path = "C:\AA\BB"
file_list = os.listdir(path)
abs_path = []
for a in file_list:
x = zip_file_path+'\\'+a
print x
abs_path.append(x)
for f in abs_path:
zip=zipfile.ZipFile(f)
zip.extractall(zip_file_path)
Nie zawiera sprawdzania poprawności pliku, jeśli nie jest skompresowany. Jeśli folder zawiera plik .zip, zakończy się niepowodzeniem.