Search code examples
python-3.7zip

How to convert a directory to a ZIP?


I wanted to know how to convert a file (x) directly to a ZIP (x.zip), and convert it back into a normal file, using python (3.7)


Solution

  • I use shutil

    import shutil
    #creating archive
    shutil.make_archive(output_filename, 'zip', dir_name)
    #unpacking archive
    shutil.unpack_archive(input_filename, extract_dir, 'zip') 
    

    you can also do with zipfile

    import os
    import zipfile
    #creating zip file
    zf = zipfile.ZipFile("myzipfile.zip", "w")
    for dirname, subdirs, files in os.walk("mydirectory"):
        zf.write(dirname)
        for filename in files:
            zf.write(os.path.join(dirname, filename))
    zf.close()
    #extracting zip file
    with zipfile.ZipFile("myzipfile.zip", 'r') as zip: 
        zip.extractall()