Как разделить таблицу dbf на две или более таблиц dbf с помощью python

У меня есть таблица dbf. Я хочу автоматически разделить эту таблицу на две или более таблиц с помощью Python. Основная проблема в том, что эта таблица состоит из большего количества групп строк. Каждая группа строк отделена от предыдущей группы пустой строкой. Поэтому мне нужно сохранить каждую из групп в новую таблицу dbf. Я думаю, что эту проблему можно решить, используя какую-то функцию из пакета Arcpy и цикл FOR и WHILE, но мой мозг не может ее решить :D :/ Моя исходная таблица dbf более сложна, но я прикрепляю простой пример для лучшего понимания. Извините за мой плохой английский.

Исходная таблица dbf:

ID  NAME   TEAM
1   A      1
2   B      2
3   C      1
4   
5   D      2
6   E      3

Я хочу получить dbf1:

ID  NAME   TEAM
1   A      1
2   B      2
3   C      1

Я хочу получить dbf2:

ID  NAME   TEAM
1   D      2
2   E      3

person oznog    schedule 25.01.2014    source источник
comment
Это настоящий файл .dbf или файл csv? Какой код у вас есть до сих пор?   -  person Ethan Furman    schedule 26.01.2014


Ответы (1)


Используя мой пакет dbf, это может выглядеть примерно так (не проверено):

import dbf

source_dbf = '/path/to/big/dbf_file.dbf'
base_name = '/path/to/smaller/dbf_%03d'

sdbf = dbf.Table(source_dbf)
i = 1
ddbf = sdbf.new(base_name % i)

sdbf.open()
ddbf.open()
for record in sdbf:
    if not record.name:    # assuming if 'name' is empty, all are empty
        ddbf.close()
        i += 1
        ddbf = sdbf.new(base_name % i)
        continue
    ddbf.append(record)
ddbf.close()
sdbf.close()
person Ethan Furman    schedule 26.01.2014