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 a 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.1.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

File details

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

File metadata

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

File hashes

Hashes for xopen-0.3.1.tar.gz
Algorithm Hash digest
SHA256 68a9dc7ba2904e8f2e8951b94983386efbdcc8bb1fa68a0fbd06bf04e0bc0b98
MD5 a008c89c92c5dad84c5f8c1104a43a18
BLAKE2b-256 e95c5d7377795c2d35045a080a71b6587f7009d39fd56a171c028f71458febb0

See more details on using hashes here.

File details

Details for the file xopen-0.3.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for xopen-0.3.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 55ea57a2c6a839d5db02f5f7e2cfe0089c2e2bb6b0d0a672e3f4a3f6fe02f4a8
MD5 d5d6acf3478318bfa80b122c78bf7e41
BLAKE2b-256 80598c09e7d4fb8d066df9572df2fc387887cd1d9cdaf29de10b229eb0ecdf01

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