.dbf 文件中出现意外的文件结尾 (1AH)

Unexpected End-of-file (1AH) in .dbf file

我正在使用优秀的 dbf package for Python 从 .dbf 文件中读取数据。该文件由专有 Windows 应用程序生成,我无法访问其源代码。 dbf 表示 .dbf 是一个 Foxpro 文件。

.dbf 文件不断更新,因此我会定期重新阅读它。它包含超过一百万条记录。一切都很好,直到今天,突然收到以下错误:

DbfError: record data not correct -- first character should be a ' ' or a '*'.

仔细检查发现相应记录 (#46448) 的数据现在以 ASCII 字符 26 (0x1A) 开头。 Wikipedia 表示此字符在 .dbf 文件中用作文件结束标记。为什么这个字符突然出现在文件中间?

还有一个人 forum post 似乎遇到了同样的问题。不幸的是,那里没有给出解决方案。

问题似乎出在创建应用程序上。进一步挖掘显示该字段中只有一条记录带有 0x1A,并且该应用程序正在正常处理该记录。