2013-08-15 2 views
1

Я уже пробовал использовать PHP 5.3 с расширением dbase, но он не работает надежно для больших баз данных более чем на 2 ГБ. Мне нужен способ итерации через подраздел большого DBF и возможность читать/редактировать поля. Это можно сделать (я использую Windows)?Итерация через большой db

Первая попытка:

table = dbf.Table('myhugeDBF.dbf') 
#is this the only way to access the dbf data? 
#I only need the last 10k records as opposed to the whole 4.5 GB beast 


table.open() 

for i in xrange(len(table)-10000, len(table)): 
    table[i].desc = (table[i].desc).replace("\n","") 
    print "*" + str(table[i].desc) + "*" #for debug purposes 
+0

Вы заперты в РНР? У меня есть [python dbf module] (https://pypi.python.org/pypi/dbf), который должен работать (и, если это не так, я исправлю ошибку;). –

+0

@ EthanFurman Я отправил некоторый пример кода в OP; Каков оптимальный способ сделать это в вашей библиотеке? – user2680039

ответ

1
table = dbf.Table('myhugeDBF.dbf') 
# is this the only way to access the dbf data? 
# yes. the above only reads the header, though, so you can get basic 
# info about the dbf (size, field names, etc.) 


table.open() 
# this creates a data structure with one (small) element per record 

for record in table[-10000:]: 
    with record: 
     record.desc = record.desc.replace('\n','') 
Смежные вопросы