Exemple #1
0
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 
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
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
Exemple #5
0
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