How to delete record from dbf file using python dbf module?

我是研究僧i 提交于 2019-12-08 09:12:24

问题


I'm trying to write/delete records in a visual foxpro 6 dbf file, using python 2.7 and the dbf package:

import dbf
tbl = dbf.Table('test.dbf')
tbl.open()
rec = tbl[0]
print(rec.__class__)
rec.delete_record()

Result:

<class 'dbf.ver_2.Record'>
Traceback (most recent call last):
  File "C:/Python/Projects/test/test.py", line 11, in <module>
    rec.delete_record()
  File "C:\Python\Projects\test\venv\lib\site-packages\dbf\ver_2.py", line 2503, in __getattr__
    raise FieldMissingError(name)
dbf.ver_2.FieldMissingError: 'delete_record:  no such field in table'

Here is the documentation for that package: http://pythonhosted.org/dbf/

The record object really does not have this method, but it is documented. The table is opened in read-write mode. (But it is also true that the Table() constructor should return an opened table, but it returns a closed table instead.)

What am I doing wrong?

The biggest problem is that there are no other options. The only other package I know of is "dbfpy" but that does not handle vfoxpro 6 tables, and it does not handle different character encodings.


回答1:


That documentation is out of date. (My apologies.)

What you want is:

dbf.delete(rec)
tbl.pack()


来源:https://stackoverflow.com/questions/48832107/how-to-delete-record-from-dbf-file-using-python-dbf-module

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!