Directory का Zip Archive बनाना
zipfile Module का उपयोग करके Directory का Zip Archive बनाएं। os.walk का उपयोग करके Directory Tree को Walk करें और इसमें सभी Files को Recursively Add करें।
उदाहरण
import os
import zipfile
def zipdir(path, ziph):
# ziph is zipfile handle
for root, dirs, files in os.walk(path):
for file in files:
file_path = os.path.join(root, file)
# Archive में Relative Path Store करें
arcname = os.path.relpath(file_path, path)
ziph.write(file_path, arcname)
zipf = zipfile.ZipFile('Zipped_file.zip', 'w', zipfile.ZIP_DEFLATED)
zipdir('./my_folder', zipf)
zipf.close()
उपरोक्त Code my_folder के Contents को 'Zipped_file.zip' नामक File में Zip करेगा और इसे Current Directory में Store करेगा।
Context Manager का उपयोग (अनुशंसित)
import os
import zipfile
def create_zip_archive(source_dir, output_filename):
"""Directory से Zip Archive बनाएं"""
with zipfile.ZipFile(output_filename, 'w', zipfile.ZIP_DEFLATED) as zipf:
for root, dirs, files in os.walk(source_dir):
for file in files:
file_path = os.path.join(root, file)
arcname = os.path.relpath(file_path, source_dir)
zipf.write(file_path, arcname)
# उपयोग
create_zip_archive('./my_folder', 'Zipped_file.zip')
Shutil का उपयोग (High-Level, Python 3.2+)
import shutil
# Entire Directory को Zip करें
shutil.make_archive('Zipped_file', 'zip', './my_folder')
# Creates: Zipped_file.zip
Note: shutil.make_archive सबसे सरल तरीका है लेकिन कम Control प्रदान करता है।