Для этого можно использовать модуль struct
:
data = [120,300,-250,13,-120] # you seem to have the reading part covered already
# using a list as data input for demo purposes
import struct
with open("f.bin","wb") as f:
for d in data:
f.write(struct.pack('h', d)) # 2 byte integer aka short
with open("f.bin","rb") as f:
print(f.read()) # b'x\x00,\x01\x06\xff\r\x00\x88\xff'
Вам просто нужно указать 'h'
, чтобы получить короткую (2-байтовое целое) упаковку.
Для причудливого вывода на печать виноват python - он заменяет «известные» \xXX
коды на короче нормальные символы - например, ',' => 0x2c
или \r
=> \x0d
и т. Д.