Common interface for compressed file manipulation
Project description
compfile Common interfaces for manipulating compressed files (lzma, gzip etc)
Rationale
Sometimes, we need to deal with different compressed files. There are several packages/modules for compressed file manipulation, e.g., gzip module for "*.gz" files, lzma module for "*.lzma" and "*.xz" files, etc. If we want to support different types of compressed file in our project, probably we need to do the following:
if fnmatch.fnmatch(fname, "*.gz"):
f = gzip.open(fname, 'rb')
# do something with f
elif fnmatch.fnmatch(fname, "*.bz2'):
f = bz2.open(fname, 'rb')
# do something with f
else:
# other stuffs
The problems of the above approch are:
- We need to repeat the compression type inference logic everywhere we want to support different compression types.
- Different compression type manipulation modules may have different API convention.
compfile is designed to solve the above problems. It abstracts the logic of compressed file manipulations and provides a single high level interface for users.
Installation
Install from PyPI
pip install compfile
Install from Anaconda
conda install -c liyugong compfile
Install from GitHub
pip install git+https://github.com/gongliyu/compfile.git@master
Simple example
Using compfile is pretty simple. Just construct a compfile.CompFile object or call compfile.open
with compfile.open(fname, 'r') as f:
# do something with f
The object returned is a file object, so we can do ordinary file processing with it.
License
The compfile package is released under the MIT License
Documentation
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
Built Distribution
File details
Details for the file compfile-0.0.3.tar.gz
.
File metadata
- Download URL: compfile-0.0.3.tar.gz
- Upload date:
- Size: 5.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d620f539904ab8e72d97d73065211824113999d82ba20acd9d097d2a1a3358ac |
|
MD5 | abf404cb76a97b077cb587fc9fed3cbd |
|
BLAKE2b-256 | 24be5e7717ea7f99703d2fa451715068fef5de9a068ef1a00c5d03d782d7ef62 |
File details
Details for the file compfile-0.0.3-py2.py3-none-any.whl
.
File metadata
- Download URL: compfile-0.0.3-py2.py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79fc36935475551a7002693ab88093daf9751be436a01166976d4d8422f9860b |
|
MD5 | 14f01549bffee106a6f227b2f8ed4436 |
|
BLAKE2b-256 | 3ab197389fbc3077b332623afa9af70ee38a65fc8d7341a757c3a18254aa655f |