def iter_and_close(file_like, block_size):
    while 1:
        try:
            block = file_like.read(block_size)
            if block: yield block
            else: raise StopIteration
        except StopIteration, si:
            file_like.close()
            return
Yield file contents by block then close the file.
dataset/ETHPy150Open cloudera/hue/tools/ace-editor/static.py/iter_and_close