24

我的 Ubuntu 系统上有一堆 FoxPro (VFP9) DBF 文件,是否有库可以在 Python 中打开这些文件?我只需要阅读它们,并且最好也可以访问备忘录字段。

更新:感谢@cnu,我使用了 Yusdi Santoso 的dbf.py,效果很好。一个问题:备忘录文件的扩展名必须是小写的,即.fpt.FPT文件名不是从 Windows 过来的。

4

6 回答 6

17

我更喜欢dbfpy。它支持.DBF文件的读取和写入,并且可以处理格式的大多数变化。这是我发现的唯一实现,它可以读取和写入我使用过的一些旧系统的遗留 DBF 文件。

于 2008-09-01T13:12:53.317 回答
12

我能够使用来自 PyPI http://pypi.python.org/pypi/dbf的 dbf 包读取 DBF 文件(以及相关的 BAK、CDX、FBT、TBK 文件**) 。我是 python 新手,对 DBF 文件一无所知,但它很容易从我女朋友的业务中读取 DBF 文件(使用名为 AIMsi 的音乐商店 POS 应用程序创建)。

安装 dbf 包后(我使用 aptitude 并安装了 dbf 版本 0.88 我认为),以下 python 代码工作:

from dbf import *
test = Table("testfile.dbf")
for record in test:
    print record
    x = raw_input("")  # to pause between showing records

这就是我现在所知道的,但希望这对于发现这个问题的其他人来说是一个有用的开始!

2012 年 4 月 21 日 SJK 编辑:根据 Ethan Furman 的评论,我应该指出,除了 DBF 文件之外,我实际上不知道哪些数据文件是必要的。我第一次运行脚本时,只有 DBF 可用,它抱怨缺少支持文件。所以,我只是复制了 BAK、CDX、FPT(不是我在编辑之前说的 FBT)、TBK 文件,然后它就可以工作了。

于 2012-04-20T23:33:30.667 回答
9

如果你还在检查这个,我在https://github.com/kstrauser/pgdbf有一个 GPL FoxPro-to-PostgreSQL 转换器。我们使用它定期将我们的表复制到 PostgreSQL 中以进行快速报告。

于 2008-09-17T18:59:49.523 回答
8

你可以在 Active State 上试试这个食谱。

您还可以尝试一个DBFReader 模块。

用于支持备注字段

于 2008-09-01T07:02:10.853 回答
5

查看http://groups.google.com/group/python-dbase

它目前支持 dBase III 和 Visual Foxpro 6.0 db 文件...不确定 VFP 9 中的文件布局是否更改...

于 2009-02-23T17:08:19.060 回答
5

现在是 2016 年,我不得不摆弄 dbf 包才能让它工作。这是一个 python3 版本,仅将 dbf 文件导出到 csv

import dbf

d=dbf.Table('mydbf.dbf')
d.open()
dbf.export(d, filename='mydf_exported.csv', format='csv', header=True)

起初我遇到了一些 unicode 错误,但通过关闭备忘录解决了这个问题。

import dbf

d=dbf.Table('mydbf.dbf', ignore_memos=True)
d.open()
dbf.export(d, filename='mydf_exported.csv', format='csv', header=True)
于 2016-08-02T21:18:47.013 回答