用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第三方库


热门话题
java Netbeans hibernate pdf报告   java如何将通用JAXBElement作为输入   java如何在Spring中注入自定义ObjectFactory   使用webview下载java 安卓 instagram视频   是否可能使用Java在OpenCL上运行C应用程序?   java AbstractTableModel使用TreeMap<Integer,Vector<Object>作为实现insertRow()的基础   java使用@Transaction和spring boot 2.1回滚每个异常   java Hibernate批处理操作性能   swing从Java对象的ArrayList创建JTable   代码可读性为什么java没有相同的功能/替代方案   java Spring创建名为“org”的bean时出错。springframework。aop。配置。内部自动加速器   java如何在JTable中维护用户指定的列宽?   java FCM通知图标未更改   kryo如何在java之外向kryonet发送数据   java当记录计数很高且某些列被索引时,如何优化Oracle DB中的插入率?   ffmpeg如何使用java程序执行cmd命令