概要
pyminizipを使って圧縮ファイルにパスワードを付ける時、
複数のファイルをまとめるならcompress_multipleを使うけれども、
イテレートしながらファイルをまとめたい時のやり方。
方法
- pyminizip.compressでパスワード付きのzipファイルを作成してから、zipfile.ZipFileの追記モードでファイルを追加していくとできる。
import zipfile
from pathlib import Path
import pyminizip
class ZipFileProcessor:
@staticmethod
def init_zipfile_with_password(zip_file_name: str, file_name: str, password: str) -> None:
pyminizip.compress(file_name, '', zip_file_name, password, zipfile.ZIP_DEFLATED)
def process_zipfile(self, zip_file_name: str, file_name: str, password: str) -> None:
if not Path(zip_file_name).exists():
self.init_zipfile_with_password(zip_file_name, file_name, password)
return
with zipfile.ZipFile(zip_file_name, 'a') as zip_file:
zip_file.write(
file_name,
compress_type=zipfile.ZIP_DEFLATED
)