You can download this code by clicking the button below.
This code is now available for download.
This function takes a directory and a filename as arguments, and compresses all files in the directory into a single zip file.
Technology Stack : os, zipfile, json, shutil, datetime, stat, tempfile, contextlib
Code Type : File compression
Code Difficulty : Intermediate
def zip_file(directory, filename):
import os
import zipfile
import json
import shutil
import datetime
import stat
import tempfile
import contextlib
def get_files_from_directory(directory):
for root, dirs, files in os.walk(directory):
for file in files:
yield os.path.join(root, file)
with contextlib.closing(zipfile.ZipFile(filename, 'w', zipfile.ZIP_DEFLATED)) as zipf:
for file_path in get_files_from_directory(directory):
zipf.write(file_path, os.path.relpath(file_path, directory))
return filename