while True:
    yield chain([next(iterable)], islice(iterable, n - 1))
l = 30 * 10 ** 6
file_large = 'large_file.txt'
with open(file_large) as bigfile:
    for i, lines in enumerate(chunks(bigfile, l)):
        file_split = '{}.{}'.format(file_large, i)
with open(file_split, 'w') as f:
    f.writelines(lines)
Разделить большой текстовый файл (около 50 ГБ) на несколько файлов