Skip to content

asaskevich/binario

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

binario Build Status

Simple work with binary data in Python.

Coverage Status PyPI version PyPi downloads Supported Python versions Development Status

What is the binario?

binario is the Python package that lets an application read/write primitive data types from an underlying input/output stream as binary data.

And which primitive data types it can process?

It can work with booleans, integers, shorts, long integers, floats, doubles, strings and any byte buffers.

How to write data?

It's simple. Just create instance of Writer and then do your work:

>>> import binario
>>> w = binario.Writer("file.dat")
>>> w.write_short(2014)
>>> w.write_bool(True)
>>> w.write_float(3.1415)
>>> w.write_string("Hello, world!")
>>> w.write(bytes([128, 20, 10, 255, 0]))

And how to read data?

It's simple too. Like outputting, create Reader and then do your work:

>>> import binario
>>> r = binario.Reader("file.dat")
>>> r.read_short()
2014
>>> r.read_bool()
True
>>> r.read_float()
3.1415
>>> r.read_string()
"Hello, world!"
>>> r.read(5)
b'\x80\x14\n\xff\x00'

Which byte order specified by default?

By default it is network order (or big-endian).

Okay, it is good, but if I want to change byte order for Reader or Writer?

Not a problem! Just specify it:

>>> import binario
>>> r = binario.Reader("file.dat", binario.LITTLE_ENDIAN)
>>> w = binario.Writer("another_file.dat", binario.BIG_ENDIAN)

What about append new data to existing file?

Yeah, it is also very simple:

>>> import binario
>>> w = binario.Writer("incomplete_file.dat", append=True)

How to install(upgrade) this package?

Just type in your terminal:

$ pip install binario
$ pip install binario --upgrade

Documentation

http://binarios-docs.readthedocs.org/en/latest/

Contribution

If you do have a contribution for the package feel free to put up a Pull Request or open Issue on GitHub repo.

Releases

No releases published

Packages

No packages published

Languages