用python读取dbf文件
dbfread的Python项目详细描述
dbf是数据库(如dbase、visual foxpro和 FoxBase+。这个库读取dbf文件并将数据作为本机数据返回 用于进一步处理的python数据类型。它主要用于 批处理作业和一次性脚本。
>>> from dbfread import DBF >>> for record in DBF('people.dbf'): ... print(record) OrderedDict([('NAME', 'Alice'), ('BIRTHDATE', datetime.date(1987, 3, 1))]) OrderedDict([('NAME', 'Bob'), ('BIRTHDATE', datetime.date(1980, 11, 12))])
默认情况下,记录直接从文件流式传输。如果你有 足够的内存,你可以把它们加载到一个列表中。这就允许 随机存取:
>>> table = DBF('people.dbf', load=True) >>> print(table.records[1]['NAME']) Bob >>> print(table.records[0]['NAME']) Alice
在https://dbfread.readthedocs.io/
请参阅docs/changes.rst以获取每个版本中更改的完整列表。
主要功能
- 为Python3编写,但也适用于2.7
- 数据作为原生python数据类型返回
- 记录是有序字典,但可以重新配置为 任何类型
- 旨在处理dbf文件的所有变体。(目前仅广泛使用 使用visual foxpro进行测试,但应该可以与其他 变体。)
- 支持18种字段类型。可以通过子类化添加自定义类型 FieldParser
- 读取FPT和DBT备忘录文件,包括文本和二进制数据
- 在区分大小写的文件系统上优雅地处理混合大小写文件名
- 可以检索已删除的记录
安装
需要Python3.2或2.7。
pip install dbfread
dbfread是纯python模块,不依赖于任何包 在标准库之外。
在本地生成文档:
python setup.py docs
这需要狮身人面像。结果文件可以在 docs/_build/。
API更改
dbfread.open()和dbfread.read()从版本开始就不推荐使用 2.0,将在2.2中删除。
DBF类不再是list的子类。这使得 api更干净、更容易理解,但依赖于 这种行为将被打破。迭代和记录计数工作 和以前一样。其他列表操作可以使用 record属性。例如:
table = dbfread.read('people.dbf') print(table[1])
可以重写为:
table = DBF('people.dbf', load=True) print(table.records[1])
open()和read()都返回DeprecatedDBF,这是 DBF和list的子类,因此向后兼容。
许可证
dbfread是根据MIT license的条款发布的。
联系人
奥勒马丁比约恩-ombdalen@gmail.com