Python hex or binary data man

Добрый день!
Во флеше есть возможность преобразования объекта как массива байтов и потом любого издевательства над этими байтами и массивом ( как-то +\- любого числа к байту )
Пытаюсь похожую проблему решить на python, то есть прочитать файл побайтово, отнять от байта его позицию ( да-да, звучит бредово, но как-то работает на флэше )
Чего-то похожего удалось добиться через
f = open('ac.swf', 'rb+')
ff = open('aaaa.swf', 'wb+')
data = f.read()
for i,el in enumerate(data):
el = unpack('<b', el)
ff.write(pack('i', el[0]-i))

Но в файл записываются лишние 3 ноля… Не знаю что сделать((
  • Вопрос задан
  • 4800 просмотров
Пригласить эксперта
Ответы на вопрос 2
@alz
Распаковываете байт, а упаковываете в целое? Может в байт и упаковывать?
Ответ написан
DmZ
@DmZ
Выше сказали верно — упаковываете не то что распаковали.
Если файл небольшой, то удобнее наверно сразу считать его в массив, обработать, а потом массив записать.
Например так:

data = file('ac.swf','rb').read()
bytearr = unpack('<%db'%len(data), data)
# Process array bytearr: enumerate(bytearr)...
file('aaaa.swf','wb').write(pack('<%db'%len(bytearr), bytearr))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы