Skip to main content

Open compressed files transparently

Project description

https://travis-ci.org/marcelm/xopen.svg?branch=master https://img.shields.io/pypi/v/xopen.svg?branch=master

xopen

This small Python module provides an xopen function that works like the built-in open function, but can also deal with compressed files. Supported compression formats are gzip, bzip2 and xz. They are automatically recognized by their file extensions .gz, .bz2 or .xz.

The focus is on being as efficient as possible on all supported Python versions. For example, simply using gzip.open is very slow in older Pythons, and it is a lot faster to use a gzip subprocess. For writing to gzip files, xopen uses pigz when available.

This module has originally been developed as part of the cutadapt tool that is used in bioinformatics to manipulate sequencing data. It has been in successful use within that software for a few years.

xopen is compatible with Python 2.7, 3.3, 3.4, 3.5 and 3.6.

Usage

Open a file for reading:

from xopen import xopen

with xopen('file.txt.xz') as f:
    content = f.read()

Or without context manager:

from xopen import xopen

f = xopen('file.txt.xz')
content = f.read()
f.close()

Open a file for writing:

from xopen import xopen

with xopen('file.txt.gz', mode='w') as f:
    f.write('Hello')

Credits

The name xopen was taken from the C function of the same name in the utils.h file which is part of BWA.

Kyle Beauchamp <https://github.com/kyleabeauchamp/> has contributed support for appending to files.

Some ideas were taken from the canopener project. If you also want to open S3 files, you may want to use that module instead.

Author

Marcel Martin <mail@marcelm.net> (@marcelm_ on Twitter)

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

xopen-0.3.2.tar.gz (4.7 kB view details)

Uploaded Source

Built Distributions

xopen-0.3.2-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

xopen-0.3.2-py2-none-any.whl (6.7 kB view details)

Uploaded Python 2

File details

Details for the file xopen-0.3.2.tar.gz.

File metadata

  • Download URL: xopen-0.3.2.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for xopen-0.3.2.tar.gz
Algorithm Hash digest
SHA256 66b9f26024a4527689a1794807c112f36a05a7e592a581451b8d059a87adf22f
MD5 1e8c7ec1ca903bd41483630280e6c2af
BLAKE2b-256 637ff18c758714d7f5714da95ef08eeacb04b6f9ef2e5853492c516cb979e4dc

See more details on using hashes here.

File details

Details for the file xopen-0.3.2-py3-none-any.whl.

File metadata

File hashes

Hashes for xopen-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7a166bd5c94cf57999e102acb51f91856bcb5a17964adedcb0f41e86c4a950ec
MD5 a4ce6bc65b3aa35f8ed5b43e43f82573
BLAKE2b-256 75f67d66c9f039cb253c50b065a0f0854335034116d7c195c460094dceb38268

See more details on using hashes here.

File details

Details for the file xopen-0.3.2-py2-none-any.whl.

File metadata

File hashes

Hashes for xopen-0.3.2-py2-none-any.whl
Algorithm Hash digest
SHA256 6ae323b5dc7bb2da08590ed03ed56d4dfe637afb3dd5bf577804fcf619bed653
MD5 b1a6b884d220f8e799eebb24f2fa2044
BLAKE2b-256 953d23f7f94bd30e5da18463b86e32445b7be50215b7823e3f9c521579ab503f

See more details on using hashes here.

Supported by

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