Search code examples
pythonpasswordsgziparchivezip

How to compress files as password protected archive using Python


Is there a way to compress gzip or zipfile as a password protected archive? Here is an example code illustrating how to archive file with no password protection:

import gzip, shutil

filepath = r'c:\my.log'

with gzip.GzipFile(filepath + ".gz", "w") as gz:
    with open(filepath) as with_open_file:
        shutil.copyfileobj(with_open_file, gz)

import zipfile

zf = zipfile.ZipFile(filepath + '.zip', 'w')
zf.write(filepath)
zf.close()

Solution

  • Python supports extracting password protected zips:

    zipfile.ZipFile('myarchive.zip').extractall(pwd='P4$$W0rd')
    

    Sadly, it does not support creating them. You can either call an external tool like 7zip or use a third-party library like this zlib wrapper.