如何使用 dbf 模块更新记录
how to update a record with the dbf module
如何使用 dbf 模块更新 dbf 中的记录:https://pypi.python.org/pypi/dbf
这是我尝试过的:
table2 = dbf.Table(filename, codepage="cp1252")
table[0].name = "changed"
但我得到:
File "<input>", line 1, in <module>
File "/venv/lib/python3.4/site-packages/dbf/ver_33.py", line 2508, in __setattr__
raise DbfError("unable to modify fields individually except in `with` or `Process()`")
dbf.ver_33.DbfError: unable to modify fields individually except in `with` or `Process()`
我设法读取和追加但不能修改数据,我该怎么做?
好吧,我没看懂 "with or process" 部分,但我是这样成功的:
dbf.write(table[0],name="changed")
在那里找到,这个分支有更多文档 https://bitbucket.org/ltvolks/python-dbase
这样应该更安全
可以通过几种不同的方式将数据写入记录:
将记录用作上下文管理器:
with table[0] as rec:
rec.name = "changed"
使用dbf.Process
函数循环处理多条记录:
for rec in Process(my_table):
rec.name = rec.name.title()
使用dbf
模块中的write
函数:
dbf.write(some_record, name='My New Name')
我这样做是为了提高安全性和性能。
如何使用 dbf 模块更新 dbf 中的记录:https://pypi.python.org/pypi/dbf
这是我尝试过的:
table2 = dbf.Table(filename, codepage="cp1252")
table[0].name = "changed"
但我得到:
File "<input>", line 1, in <module>
File "/venv/lib/python3.4/site-packages/dbf/ver_33.py", line 2508, in __setattr__
raise DbfError("unable to modify fields individually except in `with` or `Process()`")
dbf.ver_33.DbfError: unable to modify fields individually except in `with` or `Process()`
我设法读取和追加但不能修改数据,我该怎么做?
好吧,我没看懂 "with or process" 部分,但我是这样成功的:
dbf.write(table[0],name="changed")
在那里找到,这个分支有更多文档 https://bitbucket.org/ltvolks/python-dbase
这样应该更安全
可以通过几种不同的方式将数据写入记录:
将记录用作上下文管理器:
with table[0] as rec: rec.name = "changed"
使用
dbf.Process
函数循环处理多条记录:for rec in Process(my_table): rec.name = rec.name.title()
使用
dbf
模块中的write
函数:dbf.write(some_record, name='My New Name')
我这样做是为了提高安全性和性能。