>  기사  >  백엔드 개발  >  큰 텍스트 파일의 특정 줄로 효율적으로 건너뛰는 방법은 무엇입니까?

큰 텍스트 파일의 특정 줄로 효율적으로 건너뛰는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-02 03:39:30129검색

How to Efficiently Skip to a Specific Line in a Large Text File?

큰 텍스트 파일에서 특정 줄로 건너뛰기

대량 텍스트 파일을 다룰 때 직접 건너뛰어야 하는 경우가 많습니다. 특정 라인으로. 한 가지 간단한 접근 방법은 파일을 반복적으로 읽는 것입니다. 그러나 대상 줄 번호를 미리 알고 있으면 비효율적일 수 있습니다.

문제:

코드 스니펫 사용 제공됨:

startFromLine = 141978
urlsfile = open(filename, "rb", 0)
linesCounter = 1
for line in urlsfile:
    if linesCounter > startFromLine:
        DoSomethingWithThisLine(line)
    linesCounter += 1

이 코드는 파일을 한 줄씩 읽으므로 관련이 없더라도 이전 줄을 모두 처리해야 합니다.

더 효율적인 솔루션:

특정 줄로 효율적으로 이동하려면 2단계 접근 방식을 활용할 수 있습니다.

  1. 오프셋 목록 작성:

    • 파일을 한 줄씩 읽고 각 줄 시작의 오프셋을 저장하는 line_offset 목록을 만듭니다.
  2. 대상 줄 탐색:

    • 대상 라인 번호 n이 주어지면 file.seek(line_offset[n])을 사용하여 파일 포인터를 해당 라인의 시작 부분으로 이동합니다.

예는 다음과 같습니다.

line_offset = []
offset = 0
for line in file:
    line_offset.append(offset)
    offset += len(line)
file.seek(0)

target_line = 141978
file.seek(line_offset[target_line])

이 접근 방식을 사용하면 관련 없는 줄을 처리하는 불필요한 오버헤드를 피하면서 원하는 줄로 직접 건너뛸 수 있습니다.

위 내용은 큰 텍스트 파일의 특정 줄로 효율적으로 건너뛰는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.