24 lines
698 B
Python
24 lines
698 B
Python
import os
|
|
from tempfile import TemporaryDirectory, mktemp
|
|
from zipfile import ZipFile
|
|
|
|
|
|
class Zip:
|
|
|
|
def __init__(self):
|
|
self.dir = TemporaryDirectory()
|
|
|
|
@property
|
|
def dirname(self):
|
|
return self.dir.name
|
|
|
|
def pack(self):
|
|
tmp_zip = mktemp(suffix='.zip')
|
|
with ZipFile(tmp_zip, 'w') as zip_object:
|
|
for folder_name, sub_folders, file_names in os.walk(self.dir.name):
|
|
for filename in file_names:
|
|
file_path = os.path.join(folder_name, filename)
|
|
rel_file_path = os.path.relpath(file_path, self.dir.name)
|
|
zip_object.write(file_path, rel_file_path)
|
|
return tmp_zip
|