gpt4 book ai didi

python - 如何在 python 中使用 dbf-module 忽略已删除的记录?

转载 作者:太空宇宙 更新时间:2023-11-04 00:48:41 25 4
gpt4 key购买 nike

我在 Python 2.7 中使用 Ethan Furman 的 dbf-module 版本 0.96.005(最新版本),使用老式的 FoxPro2.x-tables。因为我想忽略已删除的记录,所以我在分配 tbl = dbf.Table(dbf_path) 后设置了 tbl.use_deleted = False。我试图在打开表之前和之后设置它做 with tbl.open('read-only') as tbl: ...,但是这个和那个似乎都没有任何效果。

我试过创纪录的水平:

for rec in tbl:
if not rec.has_been_deleted and ...

但这给了我:

FieldMissingError: 'has_been_deleted:  no such field in table'

我在做某事吗?错误的?还是该功能不再可用(就像 5 年前一样 - 请参阅 Visual Fox Pro and Python)?

最佳答案

use_deletedhas_been_deleted 不再存在,并已替换为函数 is_deleted

所以此时您的选择是(假设 from dbf import is_deleted):

# check each record
for rec in tbl:
if is_deleted(rec):
continue

# create active/inactive indices

def active(rec):
if is_deleted(rec):
return DoNotIndex
return dbf.recno(rec)

def inactive(rec):
if is_deleted(rec):
return recno(rec)
return DoNotIndex

active_records = tbl.create_index(active)

deleted_records = tbl.create_index(inactive)

然后遍历那些:

# check active records
for rec in active_records:
...

关于python - 如何在 python 中使用 dbf-module 忽略已删除的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38149255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com