2010-03-03 5 views
5

큰 DBF 파일 (~ 700MB)이 있습니다. 파이썬 스크립트를 사용하여 몇 라인 만 선택하고 싶습니다. 나는 dbfpy가이 유형의 데이터베이스를 열 수있는 좋은 모듈이라는 것을 알았지 만 지금은 쿼리 기능을 찾지 못했습니다. 파이썬에서 모든 요소를 ​​반복하는 것은 너무 느립니다.Python : 큰 dbf (xbase) 파일에서 빠른 쿼리

나는 적당한 시간에 파이썬에서 원하는 것을 할 수 있습니까? Windows를 사용하는 경우

답변

9

임시 인덱스를 만든 다음 사람들을 사용하여 검색 할 수 있습니다 my dbf module 사용.

+1

아주 멋진 모듈! –

2

기회와 조합 odbc 모듈을 사용할 수 있습니다, 성능이 결합 된 CPU보다 더 많은 I/O를 바인딩입니다. 따라서 속도를 높이는 가장 좋은 방법은 검색을 최적화하는 것입니다. 검색 술어가 무엇이든 상관없이 어떤 종류의 색인을 작성하려고합니다. 몇 초 정도 걸릴 수 있습니다 인덱스를 생성

import dbf 

table = dbf.Table('big.dbf') 
index = table.create_index(lambda rec: rec.field) # field should be actual field name 

records = index.search(match=('value',)) 

하지만 검색은 그 후 매우 빠른 있습니다 :

관련 문제