У меня есть большой файл журнала (> 1 ГБ), который нужно проанализировать, поэтому я написал программу python. Я использовал islice
, чтобы я мог прочитать файл в кусках (10 000 строк), чтобы на моем сервере не хватило памяти.Python islice читает те же строки
Я искал некоторые решения для stackoverflow и реализовал один, но программа работает не так, как ожидалось, потому что isclice читает одни и те же строки каждый раз (но останавливается правильно после прочтения всего файла ...). Я не могу использовать with open
, потому что он поставляется с Python 2.5, у меня есть питон 2,4 ...
Мой код выглядит следующим образом:
n = 100000; # n lines
inf = open(fn, "r")
while True:
next_n_lines = list(islice(inf, n))
if not next_n_lines:
break
out_fn = produce_clean_logfile(next_n_lines)
a, t = main(out_fn)
send_log(a,t)
Вы знаете, что случилось?
Заранее спасибо. С уважением, Джон.
Я попытался с Ислицей из itertools, и она работает. Итак, ваша реализация islice неправильная, вы должны опубликовать ее, если хотите получить помощь. – lc2817
В дополнение к моему сценарию я написал 'from itertools import islice' ... или что вы имеете в виду? Мой код 'islice' находится в моем вопросе-тексте ... –
Вы правы, должна быть другая проблема. Я тестировал его с немым 20-строчным файлом, и он работает, поэтому мне нужно искать в другом месте! спасибо за Ваш ответ! –