2014-10-15 3 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하게 모든 레코드 생성기.

감사합니다. 당신은뿐만 아니라 디코딩하는 방법을 추가 할 수 있습니다

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

가장 쉬운 방법은 아마 인코딩 방법입니다

답변

0

...

def decode(msg): 
    return msg[0:4], ... 
관련 문제