Форум сайта python.su
0
Есть очень большой текстовый файл. В файле есть одна особая строка-маркер. Необходимо разделить файл на 2 части (все, что до маркера, и все, что после). Сохранения исходного файла не требуется.
Сейчас у меня это сделано простейшим построчным копированием:
flag = 0 inputFile = open("inputFile", 'rt') outputFileFirst = open("outputFileFirst", 'wt') outputFileSecond = open("outputFileSecond", 'wt') for line in inputFile: flag += is_marker(line) if flag: outputFileSecond.write(line) else: outputFileFirst.write(line)
Офлайн
221
trympyrym
пускай у вас будет этот код. Напишите второй код, алгоритм такой: построчно ищется нужная строка, запоминается позиция, далее вторую часть пишем в файл (читаем буфером (не строками) исходный файл до конца), далее смещаемся в начало исходного файла, и пишем во другой файл первую часть (читаем исходный файл до запомненной ранее позиции). Как то так.
Потом сравните скорость работы и отпишитесь
Офлайн
88
После копирования лучше просто обрезать файл и переименовать.
http://docs.python.org/2.7/library/stdtypes.html#file.truncate
Офлайн