Description
Project description
Py7za ("pizza")
Python wrapper for running the 7za.exe utility from https://www.7-zip.org/
The wrapper simply runs the application in a separate process and added functionality primarily aimed at running the tool in several parallel processes from the command-line.
Other than providing that utility, the wrapper tries to provide users Python API access to 7za in a way as simple, and as close to the original as possible. See some documentation for the command line options here https://sevenzip.osdn.jp/chm/cmdline/index.htm (no affiliation).
Additionally, the package contains the generic AsyncIOPool
class, which allows you to queue up a large number of asynchronous tasks, and it will keep a certain number of them running at all times, until all tasks are done. This works for any asyncio
Task
, but can be handily combined with the Py7za
class.
Finally, a command line utility py7za-box
("pizza box", and its aliases box
and unbox
) is included, which allows you to quickly replace individual files with their zipped equivalent in-place and vice versa, without writing any code. The idea is that a user may want to zip many files in a large project, without removing them from their original location, and still be able to find them by name and easily extract them individually.
For more information, check the Py7za documentation at Read the Docs (py7za.readthedocs.io).
Install
Install the package for use from scripts:
pip install py7za
Of if you want to use the command-line interface py7za-box
as well, make sure the dependencies for it are installed like this:
pip install py7za[box]
py7za-box --help
box --help
unbox --help
On Linux, you will have to have p7zip
installed for py7za
to work, as there is no Linux binary included in the package. For example:
sudo yum install -y p7zip
sudo apt-get install -y p7zip
Command line py7za-box
To quickly replace every .csv file in a directory and in all its subdirectories with a zip-file containing that .csv:
py7za-box **/*.csv
And the reverse:
py7za-box **/*.csv.zip --unbox
More in the documentation https://py7za.readthedocs.io
Dependencies
The only external dependency is on conffu
for the configuration of the command-line tool. If you only want to use the Py7za class, and just use pip install py7za
, this dependency won't be installed. To install the dependency, use pip install py7za[box]
.
License
This package is licensed under the MIT license. See LICENSE.txt.
Changelog
See CHANGELOG.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file py7za-0.3.2.tar.gz
.
File metadata
- Download URL: py7za-0.3.2.tar.gz
- Upload date:
- Size: 563.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22126bdc7741a9605645d137ac27a8f2871bf8b68fb4e4d958c1303a82cd56f1 |
|
MD5 | d3fea66d1b124931553e764ffee948b2 |
|
BLAKE2b-256 | 423fbb06eef178ea64bf449a938ca56b555ff44a3b45f69d2de4816870240ae1 |