Source code for EventManager.compressors.zip_compressor
import zipfile
from pathlib import Path
from EventManager.compressors.compressors import Compressors
[docs]
class ZipCompressor(Compressors):
"""
A class for compressing files using the ZIP format.
"""
[docs]
@staticmethod
def compress(file_path: str):
try:
output_path = Compressors.set_new_file_extension(file_path, 'zip')
with open(file_path, 'rb') as file_input, \
open(output_path, 'wb') as file_output, \
zipfile.ZipFile(file_output, 'w', zipfile.ZIP_DEFLATED) as zip_output:
zip_output.writestr(Path(file_path).name, file_input.read())
except Exception as e:
print(f"Error compressing file to ZIP: {e}")