Skip to main content

portable archive file manager

Project description

Patool

Patool is a portable archive file manager for the command line.

Various archive formats can be created, extracted, tested, listed, searched, repacked and compared with patool. The advantage of patool is its simplicity in handling archive files without having to remember a myriad of programs and options.

The archive format is determined by the file(1) program and as a fallback by the archive file extension.

Patool supports 7z (.7z, .cb7), ACE (.ace, .cba), ADF (.adf), ALZIP (.alz), APE (.ape), AR (.a), ARC (.arc), ARJ (.arj), BZIP2 (.bz2), BZIP3 (.bz3), CAB (.cab), CHM (.chm), COMPRESS (.Z), CPIO (.cpio), DEB (.deb), DMS (.dms), FLAC (.flac), FREEARC (.arc), GZIP (.gz), ISO (.iso), LRZIP (.lrz), LZH (.lha, .lzh), LZIP (.lz), LZMA (.lzma), LZOP (.lzo), RPM (.rpm), RAR (.rar, .cbr), RZIP (.rz), SHN (.shn), TAR (.tar, .cbt), UDF (.udf), XZ (.xz), ZIP (.zip, .jar, .cbz), ZOO (.zoo) and ZSTANDARD (.zst) archive formats.

It relies on helper applications to handle those archive formats (for example xz for XZ (.xz) archives).

The archive formats TAR, ZIP, BZIP2, LZMA and GZIP are supported natively and do not require helper applications to be installed. When using Python >= 3.14 the ZSTANDARD archive format is also supported natively.

Examples

# Extract several archives with different formats
patool extract archive.zip otherarchive.rar

# Extract archive with password
patool extract --password somepassword archive.rar

# Test archive integrity
patool test --verbose dist.tar.gz

# List files stored in an archive
patool list package.deb

# Create a new archive
patool create --verbose /path/to/myfiles.zip file1.txt dir/

# Create a new archive with password
patool create --verbose --password somepassword /path/to/myfiles.zip file1.txt dir/

# Show differences between two archives
patool diff release1.0.tar.gz release2.0.zip

# Search for text inside archives
patool search "def urlopen" python-3.3.tar.gz

# Repackage an archive in a different format
patool repack linux-2.6.33.tar.gz linux-2.6.33.tar.bz2

Website and installation

See https://wummel.github.io/patool/ for more info and downloads. See doc/install.md for detailed install instructions.

API

You can use patool functions from other Python applications. Log output uses a Python logging handler named "patool" and is configured to print output to sys.stderr. On errors, PatoolError will be raised. Note that extra options or customization for specific archive programs are not supported.

import patoolib
patoolib.extract_archive("archive.zip", outdir="/tmp")
patoolib.test_archive("dist.tar.gz", verbosity=1)
patoolib.list_archive("package.deb")
patoolib.create_archive("/path/to/myfiles.zip", ("file1.txt", "dir/"))
patoolib.diff_archives("release1.0.tar.gz", "release2.0.zip")
patoolib.search_archive("def urlopen", "python3.3.tar.gz")
patoolib.repack_archive("linux-2.6.33.tar.gz", "linux-2.6.33.tar.bz2")
patoolib.is_archive("package.deb")

See https://wummel.github.io/patool/ for detailed API documentation.

Test suite

Patool has extensive unit tests to ensure the code quality. The tests are run on each code push by a github runner.

Bash completion

Install the argcomplete python package eg. on Debian/Ubuntu with apt-get install python3-argcomplete, then run eval "$(register-python-argcomplete patool)" in your shell. After that typing patool, a <SPACE> and then <TAB> lists available options and commands.

Development

See doc/development.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

patool-4.0.5.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

patool-4.0.5-py2.py3-none-any.whl (101.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file patool-4.0.5.tar.gz.

File metadata

  • Download URL: patool-4.0.5.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for patool-4.0.5.tar.gz
Algorithm Hash digest
SHA256 1c8bbbbe1f421181bf7055ada975befb024c1677449e9d36f42bb45ac69f8b4c
MD5 cb286d7da9611b54dc327a3c5ac30d3c
BLAKE2b-256 2ce2215c7d5efd40cf9b33b4943055b47c22cb0851383facdaedd919e30de90a

See more details on using hashes here.

File details

Details for the file patool-4.0.5-py2.py3-none-any.whl.

File metadata

  • Download URL: patool-4.0.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 101.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for patool-4.0.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9413a114c7aedf2263f151a56798055a593de671ef0a9ef94870284ad21818fb
MD5 6ca58270c9a2dbd71dee61c34ecf0f5d
BLAKE2b-256 6150cb792aaf25a8f42f5738dafb3030a1243d484ab366ff321ebcd45dfcfc12

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page