from __future__ import with_statement
YOUR_FILENAME= 'bigfile.log'
SPLIT_NAME= 'bigfile.part%05d.log'
SPLIT_SIZE= 10000 # lines
SPLITTER= lambda t: t[0]//SPLIT_SIZE
import itertools as it
with open(YOUR_FILENAME, "r") as input_file:
for part_no, lines in it.groupby(enumerate(input_file), SPLITTER):
with open(SPLIT_NAME % part_no, "w") as out:
out.writelines(item[1] for item in lines)
Сохраните правильное имя файла как YOUR_FILENAME
. Определите, сколько строк будет в каждой части (SPLIT_SIZE
). Определите имя выхода (SPLIT_NAME
). Запустить его. Вы не ограничены простыми именами файлов в YOUR_FILENAME
и SPLIT_NAME
, очевидно; Вы можете использовать пути.