Понадобилось сделать такую штуку - есть бинарный файл. Нужно получить новый, бинарноинвертированный файл (каждый бит которого инвертирован по отношению к исходному).
Прокопался 2 часа (в питоне еще не силен), и получилось следующее (fnIn и fnOut - пути соответственно к исходному и преобразованному файлу):
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)
if (b
Не нашел, как проще инвертировать символ. Тоесть - преобразование в число и инверт - вобщем-то не вызвало затруднения, а вот записать полученное число не получалось - chr - принимает только положительные числа, а инверт может быть отрицательным, потому пришлось так извращаться. А как еще можно это сделать - не соображу. Есть-ли более правильный способ решения данной задачи?