Python interface to libarchive
Python Makefile
Clone or download
Changaco Merge pull request #72 from srandall52/master
Set options for writing archive. Set uid/gid lookup for reading disk.
Latest commit 3894218 Jun 10, 2018


A Python interface to libarchive. It uses the standard ctypes module to dynamically load and access the C library.


pip install libarchive-c


python-libarchive-c is currently tested with python 2.7, 3.4, 3.5, and 3.6.

If you find an incompatibility with older versions you can send us a small patch, but we won't accept big changes.



import libarchive

To extract an archive to the current directory:


extract_memory extracts from a buffer instead, and extract_fd extracts from a file descriptor.

To read an archive:

with libarchive.file_reader('test.7z') as archive:
    for entry in archive:
        for block in entry.get_blocks():

memory_reader reads from a memory buffer instead, and fd_reader reads from a file descriptor.

To create an archive:

with libarchive.file_writer('test.tar.gz', 'ustar', 'gzip') as archive:
    archive.add_files('libarchive/', 'README.rst')

memory_writer writes to a memory buffer instead, fd_writer writes to a file descriptor, and custom_writer sends the data to a callback function.

You can also find more thorough examples in the tests/ directory.


CC0 Public Domain Dedication