파이썬에서 파일에서 특정 줄을 읽는 방법
-
fileobject.readlines()
는 작은 크기의 파일에 대한 특정 줄을 읽습니다 -
파이썬에서 특정 줄을 읽기 위해
fileobject
의for
루프 -
파이썬에서 특정 라인을 읽는
linecache
모듈 -
파이썬에서 큰 파일에서 특정 줄을 읽는 동안
enumerate
![파이썬에서 파일에서 특정 줄을 읽는 방법](/img/Python/feature-image---How-to-read-specific-lines-from-a-file-in-Python.webp)
파이썬에서 파일을 읽는 일반적인 방법은 파일을 완전히 읽은 다음 특정 줄을 처리하는 것입니다. 예를 들어 파이썬에서 파일을 읽는 것은 빠릅니다. 예를 들어 100MB 파일을 작성하는 데 약 0.67 초가 걸립니다. 그러나 파일 크기가 100MB를 초과하면 메모리로 읽을 때 메모리 문제가 발생할 수 있습니다.
파이썬에는 다음 섹션에서 소개 된 것처럼 파일에서 특정 라인을 읽는 3 개의 내장 메소드가 있습니다.
fileobject.readlines()
는 작은 크기의 파일에 대한 특정 줄을 읽습니다
fileobject.readlines()
는 모든 파일 내용을 메모리로 읽습니다. 목록 슬라이싱을 사용하여 특정 줄을 읽을 수 있습니다.
10 행만 읽으면
with open("file.txt") as f:
data = f.readlines()[10]
print(data)
10에서 100 줄을 읽어야 할 경우
with open("file.txt") as f:
data = f.readlines()[10:100]
print(data)
파이썬에서 특정 줄을 읽기 위해fileobject
의for
루프
for line in fileobject
또한 작은 파일을 위한 빠른 해결책이다.
lines = [10, 100]
data = []
i = 0
with open("file.txt", "r+") as f:
for line in f:
if i in lines:
data.append(line.strip)
i = i + 1
print(data)
파이썬에서 특정 라인을 읽는linecache
모듈
많은 파일을 읽거나 반복적으로 추출하거나 여러 줄을 추출하는linecache
:
import linecache
data = linecache.getline("file.txt", 10).strip()
문자열 메소드strip()
은 양쪽 끝에서 공백을 제거하는 문자열을 반환합니다.
linecache
모듈을 사용하면 캐시를 사용하여 내부적으로 최적화하면서 파이썬 소스 파일에서 모든 라인을 가져올 수 있습니다. 이는 단일 파일에서 많은 라인을 읽는 일반적인 관행입니다. 역 추적 모듈은이를 사용하여 형식화 된 역 추적에 포함 된 소스 행을 검색합니다.
파이썬에서 큰 파일에서 특정 줄을 읽는 동안 enumerate
파일을 읽을 때 큰 파일은 메모리에 맞지 않는 등의 문제를 일으킬 수 있습니다. 이 경우enumerate()
를 사용할 수 있습니다:
with open("file.txt") as f:
for i, line in enumerate(f):
pass # process line i
n
번째 줄의 경우i = n-1
입니다.
enumerate()
함수는 순회 가능한 데이터 객체 (예 : 목록, 튜플 또는 문자열)를 인덱스 시퀀스로 결합하여 데이터와 데이터 첨자를 동시에 나열하며, 일반적으로for
에서 사용됩니다.