У меня есть такой код:
#opened file f
goto_line = num_lines #Total number of lines
while not found:
line_str = next(itertools.islice(f, goto_line - 1, goto_line))
goto_line = goto_line/2
#checks for data, sets found to True if needed
line_str является правильным первым проходом, но каждый проход после этого читает другую строку, чем должно.
Так, например, goto_lineначинается как 1000. Он читает строку 1000 просто отлично.Затем следующий цикл goto_line равен 500, но он не читает строку 500. Он читает строку ближе к 1000.
Я пытаюсь прочитать определенные строки в большом файле, не читая больше, чем необходимо.Иногда он переходит назад к строке, а иногда вперед.
Я пробовал linecache, но обычно я не запускаю этот код более одного раза в одном и том же файле.