用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
  • 简单但灵活的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第三方库


热门话题
Gson类中的java验证错误   If和elseif之间的java差异?   字典Java8地图。输入比较器   java连接到远程计算机以获得WMI支持   java如何使用改型处理JSON对象中的空值   在Java中使用Comparator时不可编译的源代码   java将Jar添加到JSP的运行时路径   带有随机对象的while循环的java大O时间复杂性   java可以在不考虑参数的情况下模拟方法吗?   java我有一个简单的代码,它不工作。无法修复错误“println”   向eclipse添加Xively java库   java是否可以启用本机代码的缓存?   全局变量如何在Java中的所有类之间共享要使用的语言环境?   Java内存游戏如何翻转单个卡?