Call a function until a sentinel value
blocks = []
while True:
block = f.read(32)
if block == '':
break
blocks.append(block)
from functools import partial
blocks = []
for block in iter(partial(f.read, 32), ''):
blocks.append(block)