파이썬에서 파일에서 특정 줄을 읽는 방법
-
fileobject.readlines()
는 작은 크기의 파일에 대한 특정 줄을 읽습니다 -
파이썬에서 특정 줄을 읽기 위해
fileobject
의for
루프 -
파이썬에서 특정 라인을 읽는
linecache
모듈 -
파이썬에서 큰 파일에서 특정 줄을 읽는 동안
enumerate

파이썬에서 파일을 읽는 일반적인 방법은 파일을 완전히 읽은 다음 특정 줄을 처리하는 것입니다. 예를 들어 파이썬에서 파일을 읽는 것은 빠릅니다. 예를 들어 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
에서 사용됩니다.