바이너리 검색에 대한 많은 도움이 있지만이 특정 문제를 찾을 수 없습니다. 이것이 내가 IDLE에 들어가는 것과 똑같은 일이 내 코드에서 일어나고있는 것입니다.파이썬 바이너리 검색 readline은 전체 라인을 반환하지 않습니다.
>>> import os
>>> a=os.path.getsize("C:\\testfile.txt")
>>> a
9341L
파일을 엽니 다
>>> f = open("C:\\testfile.txt",'r')
: 먼저
, 나는 파일의 파일 크기가 (각 행은 두 개의 정수, 첫 번째 정수하여 탭으로 구분하고 분류입니다) 검색 할 찾기
파일의 중간에 탐색
>>> f.seek(int(a/2))
'\n'
(이진 검색 등의 테스트를하기 전에) 라인이 있어야한다 '534\t1026\n'
즉 전체 줄이 아니라 '검색'지점부터 시작하는 줄의 나머지 부분입니다. 내가 찾은 이진 검색 코드 중 어느 것도 새로운 각각의 '찾기'에 대해 전체 라인을 얻는 방법을 말하는 것 같지 않습니다.
감사합니다,
S. 해결
, 감사 휴.
죄송합니다. 투표를 취소했습니다. getsize가 반환하는 것을 찾기 위해 검색을 했습니까? os.path.getsize에 대한 Google 검색을 시도하십시오. – PyNEwbie
getsize가 문제라는 것을 깨닫지 못했습니다. 문제는 readline()의 모든 정보가 전체 행을 읽는다는 것입니다. 행의 나머지 부분 만 읽지는 않습니다. Hugh의 솔루션은 간단하지만 readline()을 두 번 수행하면 간단 해 보입니다. – suze1992