데이터를리스트로 추출하기위한 시작 위치를 찾으려면 이 필요하기 때문에 .readline()을 사용하여 파일을 한 줄씩 파싱하고, 은 추출을 일시 중지 한 다음 파일 끝까지 반복하십시오. 읽어 내 파일은 다음과 같이 포맷 :큰 파일을 읽는 데 파이썬 2.7에서 너무 많은 메모리가 필요합니다
이f=open('myfile','r')
blocknum=0 #number the data block
data=[]
while True:
# find the extract begnning
while not f.readline().startswith('/sign/'):pass
# creat multidimensional list to store data block
data=append([])
blocknum +=1
line=f.readline()
while line.strip():
# check if the line is a blank line, i.e the end of one block
data[blocknum-1].append(["2.6E" %float(x) for x in line.split()])
line = f.readline()
print "Read Block %d" %blocknum
if not f.readline(): break
실행중인 결과가 거의 2기가바이트 RAM을 소비 500 미터 파일을 읽은 :
blabla... useless.... ... /sign/ data block(e.g. 10 cols x 1000 rows) ... blank line /sign/ data block(e.g. 10 cols x 1000 rows) ... blank line ... EOF
이의이 파일 'myfile을' 내 파이썬 조각을 부르 자 , 나는 그것을 알아낼 수 없다, 누군가는 돕는다! 대단히 감사합니다!
코드를 확인하십시오. 형식, 의미 및 구문상의 문제가 있습니다 ('append'는 어디에서 왔습니까?). 또한 표준 파이썬 들여 쓰기 (4 공백)를 사용하고 같은 줄에 둘 이상의 명령문을 쓰지 않도록하십시오. – GaretJax
일반 데이터 블록 몇 줄을 보여줄 수도 있습니까? – NPE