0

私はdbfテーブルを持っています。Pythonを使用して、このテーブルを2つ以上のテーブルに自動的に分割したいと考えています。主な問題は、このテーブルがより多くの行グループで構成されていることです。行の各グループは、空の行によって前のグループから分割されます。したがって、各グループを新しい 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
4

1 に答える 1

0

私の 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()
于 2014-01-26T19:26:26.850 に答える