Enhanced archive filesystems for Pyfilesystem2


Keywords
archive, zip, tar, iso, filesystem, Pyfilesystem2, library, python
License
MIT
Install
pip install fs.archive==0.6.2

Documentation

fs.archive

Source PyPI Travis Codecov Codacy Format License

Requirements

pyfilesystem2 PyPI fs Source fs License fs
six PyPI six Source six License six

Installation

Install directly from PyPI, using pip

pip install fs.archive

Additional features

fs.archive also provides the following extras:

all
install all the extras listed below.
tar.xz
support for xz compressed tar files. Requires the additional backports.lzma module in Python 2, but is available natively in Python 3.
iso
pure-python reading/writing ISO disk images (with support for ISO 9660 Levels 1, 2 and 3, Joliet and Rock Ridge extensions). Requires the pycdlib library.

Usage

The fs.archive.open_archive function is the easiest way to open an archive filesystem, with an archive located on any other filesystem, directly determining the class to use from the file extension:

>>> from fs import open_fs
>>> from fs.archive import open_archive

>>> my_fs = open_fs(u'temp://')
>>> with open_archive(my_fs, u'test.zip') as archive:
...     type(archive)
<class 'fs.archive.zipfs.ZipFS'>

All the filesystems implemented in fs.archive also support reading from — and if not read-only, writing to — a file handle:

>>> import fs.archive.tarfs
>>> with fs.open_fs(u'mem://') as mem:
...     with fs.archive.tarfs.TarFS(mem.openbin(u'test.tar', 'w')) as tar:
...         tar.setbytes(u'hello', b'Hello, World!')
...     with fs.archive.tarfs.TarFS(mem.openbin(u'test.tar', 'r+')) as tar:
...         tar.isfile(u'hello')
True

See also

  • fs, the core pyfilesystem2 library
  • fs.sshfs, a SFTP/SSH implementation for pyfilesystem2 using paramiko
  • fs.smbfs, a SMB implementation for pyfilesystem2 using pysmb