def split_file(file, delim, block_size=1024 * 1024):
    block = True
last_item = ''
while block:
    block = file.read(block_size)
items = block.split(delim)
for i in range(len(items) - 1):
    item = items[i]
if last_item:
    yield last_item + item
last_item = ''
continue
if item:
    yield item
last_item += items[-1]
Pythonic способ перебора файла на чем-то другом, кроме новой строки