Существует ли универсальная библиотека кодеков двоичного протокола для Python? - PullRequest
3 голосов
/ 18 августа 2010

Есть хороший вариант для Java - MINA .

Как только я услышал, что есть что-то похожее для Python.Но не могу напомнить.

РЕДАКТИРОВАТЬ: точнее говоря, я хотел бы иметь инструмент, который помог бы мне создать код для некоторого двоичного потока.

РЕДАКТИРОВАТЬ 2: Я быхотел бы перечислить решения здесь (спасибо Скотту за связанные темы) Перечислено для того, чтобы я использовал его.

Ответы [ 2 ]

5 голосов
/ 18 августа 2010

Вы пробовали модуль bitstring ?(Полное раскрытие: я написал это.)

Он разработан для того, чтобы максимально упростить построение и анализ двоичных данных.Взгляните на несколько примеров , чтобы узнать, подходит ли вам что-то подобное.

Этот фрагмент выполняет некоторый анализ видеофайла H.264:

    from bitstring import ConstBitStream
    s = ConstBitStream(filename='somefile.h264')
    profile_idc = s.read('uint:8')
    # Multiple reads in one go returns a list:
    constraint_flags = s.readlist('4*uint:1')
    reserved_zero_4bits = s.read('bin:4')
    level_idc = s.read('uint:8')
    seq_parameter_set_id = s.read('ue')
    if profile_idc in [100, 110, 122, 244, 44, 83, 86]:
        chroma_format_idc = s.read('ue')
        if chroma_format_idc == 3:
            separate_colour_plane_flag = s.read('uint:1')
        bit_depth_luma_minus8 = s.read('ue')
        bit_depth_chroma_minus8 = s.read('ue')
        ...
5 голосов
/ 18 августа 2010

python имеет стандартную библиотеку pack / unpack, которую можно использовать для интерпретации двоичных данных и их сопоставления со структурами

см. «11.3. Работа с макетами записи двоичных данных» здесь http://docs.python.org/tutorial/stdlib2.html

или здесь http://docs.python.org/library/struct.html

...