从Python读取FoxPro DBF文件最简单的方法是什么?

Tom*_*Tom 23 python foxpro dbf visual-foxpro

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

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

And*_*vig 16

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


Ste*_*och 10

我能够使用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
Run Code Online (Sandbox Code Playgroud)

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

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


Kir*_*ser 9

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


cnu*_*cnu 7

您可以在Active State上尝试此配方.

您还可以尝试使用DBFReader模块.

用于支持备忘录字段.

  • [DBFReader模块](http://www.garshol.priv.no/download/software/python/dbfreader.py)现在是一个死链接. (5认同)

小智 5

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

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


Sha*_*awn 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)
Run Code Online (Sandbox Code Playgroud)

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

import dbf

d=dbf.Table('mydbf.dbf', ignore_memos=True)
d.open()
dbf.export(d, filename='mydf_exported.csv', format='csv', header=True)
Run Code Online (Sandbox Code Playgroud)