Найти - Пользователи
Полная версия: как разрезать большой файл на 2 части
Начало » Python для новичков » как разрезать большой файл на 2 части
1
trympyrym
Есть очень большой текстовый файл. В файле есть одна особая строка-маркер. Необходимо разделить файл на 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)

Есть ли способ эту же задачу выполнить быстрее и, желательно, без копирования?
JOHN_16
trympyrym
пускай у вас будет этот код. Напишите второй код, алгоритм такой: построчно ищется нужная строка, запоминается позиция, далее вторую часть пишем в файл (читаем буфером (не строками) исходный файл до конца), далее смещаемся в начало исходного файла, и пишем во другой файл первую часть (читаем исходный файл до запомненной ранее позиции). Как то так.
Потом сравните скорость работы и отпишитесь
Shaman
После копирования лучше просто обрезать файл и переименовать.
http://docs.python.org/2.7/library/stdtypes.html#file.truncate
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB