큰 데이터를 다루므로 데이터를 읽는 좋은 방법을 찾는 것이 정말로 중요합니다. 나는 다른 독서 방법에 대해 조금 혼란스러워합니다.파이썬에서 큰 데이터를 읽는 다른 방법
1.f=gzip.open(file,'r')
for line in f:
process line
#how can I process nth line? can I?
2.f=gzip.open(file,'r').readlines()
#f is a list
f[10000]
#we can process nth line
3.f=gzip.open(file,'r')
while True:
linelist=list(islice(f,4))
4.for line in fileinput.input():
process line
2와 3의 차이점은 무엇입니까? 나는 그들의 메모리 사용량이 동일하다는 것을 알게된다. islice()는 또한 먼저 전체 파일을 메모리에로드해야합니다 (그러나 나중에 비트 단위로 가져옴). 그리고 네 번째 방법은 메모리 소비가 적다는 것이고, 비트 단위로 처리하는 것입니다. 10GB 크기의 파일 인 경우 어떤 파일 읽기 방법을 권하고 싶습니까? 모든 생각/정보를 환영합니다. thx
편집 : 내 문제 중 하나는 때때로 특정 줄을 임의로 선택해야한다고 생각합니다. 말 :
f1=open(inputfile1, 'r')
while True:
line_group1 = list(islice(f1, 3))
if not line_group1:
break
#then process specific lines say, the second line.
processed 2nd line
if (....):
LIST1.append(line_group1[0])
LIST1.append(processed 2nd line)
LIST1.append(line_group1[2])
그리고 나서 sth. like
with open(file,'r') as f,
for line in f:
# process line
가 올바르게 작동하지 않을 수 있습니까?
는
큰 텍스트 파일에 임의의 라인 액세스 권한이 필요합니까? –
글쎄, 사실 반드시 그렇지는 않아. 기본적으로 한 줄씩 처리하십시오. 또는 N 라인을 그룹으로 포함 할 수 있습니다. – user815408