2014-10-15 2 views
0

Я пытаюсь создать сокет-клиент, который может отправлять смоделированные записи вызовов в приемник. Клиент сокета завершен, теперь мне нужно работать с генератором полезной нагрузки. записи Вызова выглядит следующим образом:Python - Как генерировать длинные, фиксированные длины, действительные строки байтов?

CDR = b'173600009     3052  334088888     1001 0 #500 0   00000000 0   0 \r\n\x00\x00\x00' 

Каждого пространство считается, что означает, что каждый бит в этой строке принадлежит к «полю» пространство просто не означает никаких данных для этой конкретной области.

Я ищу подходящий способ создания записей, подобных этому, но сделать его достаточно простым, чтобы указать диапазон значений для каждого поля.

В основном:

timestamp = CDR[0:4] 
call_party = CDR[12:18] 

... и т.д.

потом что-то вроде

for i in [list_of_call_party]: 
    call_party = i 

наконец:

join(timestamp, call_party, etc), etc to create a new VALID record of the proper length. 

мне просто нужен толчок в правильном направлении к сделать это C все запись генератор.

Спасибо!

ответ

0

Самый простой способ, вероятно, является метод кодирования ...

def encode(timestamp=0, ...): 
    return '%-*s...' % 4, timestamp, ... 

Вы можете добавить метод декодирования, а также ...

def decode(msg): 
    return msg[0:4], ... 

 Смежные вопросы

  • Нет связанных вопросов^_^