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

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

有帮助吗?

解决方案

你可以试试这个 活动状态配方.

还有一个 DBF读取模块 你可以尝试一下。

为了支持 备注字段.

其他提示

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

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

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

安装 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日华小编辑:根据伊森·弗曼的评论,我应该指出我实际上不知道 哪个 除了 DBF 文件之外,还需要数据文件。我第一次运行该脚本时,只有 DBF 可用,它抱怨缺少支持文件。所以,我只是复制了 BAK、CDX、FPT(不是我在编辑之前所说的 FBT)、TBK 文件,然后它就工作了。

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

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

现在是 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)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top