用python读取dbf文件

td_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
  • 简单但灵活的API
  • 数据作为原生python数据类型返回
  • 记录是有序字典,但可以重新配置为 任何类型
  • 旨在处理dbf文件的所有变体。(目前仅广泛使用 使用visual foxpro进行测试,但应该可以与其他 变体。)
  • 支持18种字段类型。可以通过子类化添加自定义类型 FieldParser
  • 读取FPTDBT备忘录文件,包括文本和二进制数据
  • 在区分大小写的文件系统上优雅地处理混合大小写文件名
  • 可以检索已删除的记录

安装

需要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,这是 DBFlist的子类,因此向后兼容。

许可证

dbfread是根据MIT license的条款发布的。

联系人

奥勒马丁比约恩-ombdalen@gmail.com

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javascript通过WebSocket将服务器时间推送到多个客户端   这种java字节转换是如何工作的   数据库错误。sql。SQLEception:参数索引超出范围(1>参数数,为0)   java如何在搜索时过滤选定的viewpager片段中的recyclerview?   java如何使用OpenCV将图像转换为黑白图像并在ANDROID中消除阴影   Spring MVC项目中的java HTTP服务器状态404错误   Spring MVC中的java JSR303自定义约束验证器   java如何基于另一个ArrayList的值显示ArrayList中的特定项?   java如何在firebase messages节点获取最后发送给我的消息?   部署后在google app engine上运行servlet时发生java错误   java如何使用servlet在两个jsp之间发送数据   java日历年中的周是月中的周   从URL读取一个资源并直接返回这些字节作为REST请求的响应,Java 7和spring MVC 3.2不存储内存