Use ZipFS to read and write
Here's how you could create a zip file:
>>> from fs import open_fs >>> with open_fs('zip://test.zip', create=True) as zip_fs: ... zip_fs.settext('foo', 'bar')
And here is how you would read it back.
>>> from fs import open_fs >>> with open_fs('zip://test.zip') as zip_fs: ... print(zip_fs.gettext('foo')) 'bar'
A more typical use case would be to compress a directory, which you can do by opening a ZipFS for writing, and copying the files from another filesystem. Here's an example of one way you might compress the contents of a directory:
from fs.copy import copy_dir copy_dir("~/projects", "zip://projects.zip")
See ZipFS docs for more information.