使用Python3的dbf库创建DBF文件时遇读写模式错误求助
解决Python dbf库写入DBF文件的模式错误问题
看起来你遇到的问题是对dbf库的open方法模式参数理解有误,咱们一步步来梳理:
第一个错误的根源
你看到的错误提示看起来很矛盾:
dbf.DbfError: mode for open must be 'read-write' or 'read-only', not 'read-write'
其实这是个小坑——这个库的open方法实际接受的模式参数是不带连字符的'readwrite',而不是你写的'read-write'。虽然错误提示里写了'read-write',但这是文档/错误提示的小疏漏,实际要传的是'readwrite'。
修正后的代码
把模式参数改成'readwrite',或者直接使用库提供的常量dbf.READ_WRITE(更推荐,避免拼写错误),完整代码如下:
import dbf # 创建表结构 tbl = dbf.Table('sample.dbf', 'ID N(6,0); FCODE C(10)') # 使用正确的读写模式打开 tbl.open(dbf.READ_WRITE) # 追加空记录 tbl.append() # 写入数据到最后一条记录 with tbl.last_record as rec: rec.ID = 5 rec.FCODE = 'GA24850000' # 关闭表,确保所有修改写入磁盘 tbl.close()
额外注意事项
- 如果你省略
open的参数,默认是只读模式,所以会触发第二个错误not in read/write mode, unable to append records,这就是为什么必须显式指定读写模式。 - 操作完成后务必调用
tbl.close(),否则可能出现数据未完全写入磁盘的情况。
内容的提问来源于stack exchange,提问作者Никита Седавных
相关产品推荐
相关产品推荐

