def copyDbf(dbf_file, file = 'tst.dbf', first=None, last=None, verbose=False): from dbfpy.dbfnew import dbf_new from dbfpy.dbf import Dbf, DbfRecord # Leemos la base de datos inicial db = Dbf() db.openFile(dbf_file) num = db.header.recordCount # Creamos la cabecera de la nueva dbfn = dbf_new() headers = {} for f in db.header.fieldDefs: headers[f.name] = f.typeCode() dbfn.add_field(f.name, f.typeCode(), f.length, f.decimalCount) dbfn.write(file) db.close() # Leemos los datos viejos rec = readDbf(dbf_file) # Insertamos todos los datos first = 0 if not first else int(first) last = num if not last else int(last) if first < 0 or first > num - 2: first = 0 if last > num - 1 or last < 0 or last < first: last = num - 1 dbft = Dbf() dbft.openFile(file, readOnly=0) # Mostramos header if verbose: dbft.reportOn() # Limitamos las inserciones a los parametros for j in rec[first:last]: new_rec = DbfRecord(dbft) for k,v in j.items(): if headers[k] == 'N': v = float(v) new_rec[k] = v new_rec.store() dbft.close() # Numero de filas copiadas if verbose: print "%d raws copied" % last - first return True
do_tobjhnr = 1 do_huisnr = 1 postal_code = 0 if (len(sys.argv) > 2): postal_code = int(sys.argv[2]) print 'Filtering on postalcode: ' + str(postal_code) # parse & index pkancode huisnr_dic = dict() pkancode_set = set() print 'Extracting pkancode' db = Dbf() db.openFile(pkancode_dbf, readOnly=1) record_count = db.recordCount() for i in range(0, record_count): rec = db[i] if (i % (record_count / 50) is 0 and not i is 0): sys.stdout.write('.') sys.stdout.flush() huisnr_id = rec['HUISNRID'] pkancode = rec['PKANCODE'] if (pkancode == postal_code or postal_code is 0): huisnr_dic[huisnr_id] = dict() huisnr_dic[huisnr_id]['PKANCODE'] = pkancode
except ImportError: pass from dbfpy.dbf import Dbf from constants.extensions import CSV import sys import argv import parser input = argv.input(sys.argv) output = argv.output(sys.argv) page_size = argv.page_size(sys.argv) db = Dbf() db.openFile(input, readOnly=1) # TODO: Real error handling #try: record_count = db.recordCount() # If no record number is specified write everything if (page_size == 0): page_size = record_count pages = record_count / page_size for page in xrange(pages): # TODO: replace the magic number with a calculated one
do_terrobj = 1 do_tobjhnr = 1 do_huisnr = 1 postal_code = 0 if(len(args.filter-postcode) > 0): postal_code = int(args.filter-postcode) print 'Filtering on postalcode: ' + str(postal_code) # parse & index pkancode huisnr_dic = dict() pkancode_set = set() print 'Extracting pkancode' db = Dbf() db.openFile(pkancode_dbf, readOnly = 1) record_count = db.recordCount() for i in range(0, record_count): rec = db[i] if(i % (record_count / 50) is 0 and not i is 0): sys.stdout.write('.') sys.stdout.flush() huisnr_id = rec['HUISNRID'] pkancode = rec['PKANCODE'] if(pkancode == postal_code or postal_code is 0): huisnr_dic[huisnr_id] = dict() huisnr_dic[huisnr_id]['PKANCODE'] = pkancode
except ImportError: pass from dbfpy.dbf import Dbf from constants.extensions import CSV import sys import argv import parser input = argv.input(sys.argv) output = argv.output(sys.argv) page_size = argv.page_size(sys.argv) db = Dbf() db.openFile(input, readOnly=1) # TODO: Real error handling # try: record_count = db.recordCount() # If no record number is specified write everything if page_size == 0: page_size = record_count pages = record_count / page_size for page in xrange(pages): # TODO: replace the magic number with a calculated one