에서 작동하지 않는 나는 다음과 같은 코드가 있습니다파이썬 : itertools.islice 루프
#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으로 시작합니다. 그런 다음 다음 루프 인 goto_line은 500이지만 500 행은 읽지 않습니다. 1000 행에 더 가까운 행을 읽습니다.
큰 파일에서 특정 행을 읽는 것이 필요 이상으로 읽지 않으려 고합니다. 때로는 선으로 뒤로 점프하고 때로는 앞으로 건너 뛰기도합니다.
나는 linecache를 시도했지만 일반적으로 같은 파일에서이 코드를 두 번 이상 실행하지 않습니다.
어떤 줄을 읽으며 어떤 줄을 읽으려고합니까? (또한 : 더 깊게 들여 씁니다 .- 예를 들어, 4 칸 - 이렇게 읽는 것이 어렵습니다.) – delnan
제가 사용하는 것에 대해서는 4382898 줄을 읽으라고 말하고 첫 번째 통과에서 올바르게합니다. 그런 다음 goto_line이 2191449로 바뀌지 만, islice는 6574286 행으로 돌아갑니다. – Zeno