Skip to main content

File like object that splits data across volumes

Project description

splitfile

Python file-like object that facilitates reading and writing of binary data split across multiple volumes (files) of a specified size. Supports random access IO.

Can be used with modules such as tarfile, zipfile, lzma, etc. enabling read/write of split archives.

Note: Version 2.0 removes previously integrated encryption and compression options. The breadth of choice across both suggests they are better handled as a separate layer, leaving splitfile to simply manage the final IO across volumes.

Examples

import splitfile

with splitfile.open('data.bin', 'wb') as f:
    f.write(b'Hello, World!')
import splitfile
import tarfile

with splitfile.open('data.bin', 'wb', volume_size=1000000) as f:
    with tarfile.open(mode='w', fileobj=f) as t:
        for file in files:
            t.add(file)

Result:
data.bin
data.bin.2
data.bin.3
...

Documentation

splitfile.open(filename, mode, volume_size=0, append_to_partial=True)

Returns a SplitFile object.

  • filename contains a valid file path. Volumes add a suffix (.2, .3, etc.).
  • Supported mode values are wb, wb+, ab, ab+, rb, rb+.
  • volume_size specifies the max size of a volume in bytes.
  • append_to_partial set to True appends data written to the end of a previously created file by adding to the last volume if its size is less than volume_size. If False, a new volume is always created for writing beyond the end of an existing file.

Dependencies

None

Installation

pip install splitfile

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

splitfile-2.0.2.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

splitfile-2.0.2-py3-none-any.whl (18.3 kB view details)

Uploaded Python 3

File details

Details for the file splitfile-2.0.2.tar.gz.

File metadata

  • Download URL: splitfile-2.0.2.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.8.0

File hashes

Hashes for splitfile-2.0.2.tar.gz
Algorithm Hash digest
SHA256 d36a9f42920201aed7448c79af4fe6fc5233dd928e91bc146c8663530b1c5fec
MD5 97ae31b15476b92b73aefd36464bbfc2
BLAKE2b-256 b3dfc6826152fc532901708a8ec4719c66d36066ee36423799f616bfd96663fe

See more details on using hashes here.

File details

Details for the file splitfile-2.0.2-py3-none-any.whl.

File metadata

  • Download URL: splitfile-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 18.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.8.0

File hashes

Hashes for splitfile-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7d378f0e9265cd3e208fb9706da0265bec7db78374c892d0e007317c3cc30de3
MD5 e1d281c2bb3091c5405542ca9796ac8d
BLAKE2b-256 e990e0a624ceeda71f86f30f5e60759f42d8800e2bfe4cd5bf5872efe7e8e60c

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