χάμστερ :: :: :: ::
Feci, quod potui, faciant meliora potentes
Задача: есть несколько бинарных файлов. Нужно получить новые файлы, которые получаются из исходных путем инвертирования каждого бита.
Получилось следующее решение на Python:
import os
def process(fnIn, fnOut):
f = open(fnIn, 'rb')
fo = open(fnOut, 'wb')
try:
CHUNKSIZE = 1024
bytes_read = f.read(CHUNKSIZE)
while bytes_read:
for b in bytes_read:
b = ~ord(b)
""" Здесь небольшой изврат, тк не нашел,
как можно записать байт в файл,
а chr принимает только положительные значения,
в то время как в результате инверта может получится
отрицательное"""
if (b < 0) :
b = 256 + b
fo.write(chr(b))
bytes_read = f.read(CHUNKSIZE)
finally:
f.close()
fo.close()
names = os.listdir('e')
for name in names:
process('e/'+name, 'eo/'+name)