Всем привет. Есть скрипт по созданию zip файла. Юзаю встроенную библиотеку zipfile. Пытаюсь проверить созданный архив после его создания. И всегда получаю, что архив битый. Хотя если проверят 7zip архив целый. Для проверки юзаю его внутрен параметр. Согласно доке https://docs.python.org/3.7/library/zipfile.html
ZipFile.testzip()
Read all the files in the archive and check their CRC’s and file headers. Return the name of the first bad file, or else return None.
Тестовый арихв состоит из 2 папок(1 пустая,2 с текс.документом) 2 архива c 7z-архивами, 1 ворд. документа.
import os
import zipfile
from zipfile import ZIP_LZMA
import shutil
path_folder = "C:\\Temp\\test_7zip"
archive_name = '111111.zip'
zip_file_test = zipfile.ZipFile(archive_name, mode='w', compression=ZIP_LZMA, allowZip64=True)
rootdir = os.path.basename(path_folder)
for dirpath, dirnames, filenamaes in os.walk(path_folder):
for filenama in filenamaes:
filepath = os.path.join(dirpath, filenama)
parentpath = os.path.relpath(filepath, path_folder)
arcname = os.path.join(rootdir, parentpath)
zip_file_test.write(filepath, arcname)
test_archive = zip_file_test.testzip()
print(test_archive)
if test_archive is not None:
print(f"Archive is corrupted")
else:
print(f" Archive is not corrupted")
zip_file_test.close()