0

我有一个 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
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 回答