我尝试使用python 2.7和dbf包在visual foxpro 6 dbf文件中编写/删除记录:
import dbf
tbl = dbf.Table('test.dbf')
tbl.open()
rec = tbl[0]
print(rec.__class__)
rec.delete_record()
结果:
<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'
以下是该软件包的文档:http://pythonhosted.org/dbf/
记录对象确实没有这种方法,但记录在案。该表以读写模式打开。 (但是Table()构造函数应该返回一个打开的表,但它返回一个已关闭的表。)
我做错了什么?
最大的问题是没有其他选择。我所知道的唯一其他包是&#34; dbfpy&#34;但是这不处理vfoxpro 6表,并且它不处理不同的字符编码。
答案 0 :(得分:2)
该文档已过期。 (道歉。)
你想要的是:
dbf.delete(rec)
tbl.pack()