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

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

What's the easiest way to read a FoxPro DBF file from Python?

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

更新:谢谢@cnu,我使用了Yusdi Santoso的dbf.py,它运行良好。 一个陷阱:备忘录文件的扩展名必须小写,即.fpt,而不是.fpt,这是文件名从Windows传递过来的方式。


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


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

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

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

这就是我目前所知道的,但希望这对发现此问题的其他人是一个有用的开始!

April 21, 2012 SJK Edit: Per Ethan Furman's comment, I should point out that I actually don't know which of the data files were necessary, besides the DBF file. The first time I ran the script, with only the DBF available, it complained of a missing support file. So, I just copied over the BAK, CDX, FPT (not FBT as I said before edit), TBK files and then it worked.


如果您仍在进行检查,则可以在https://github.com/kstrauser/pgdbf上找到一个GPL FoxPro-PostgreSQL转换器。我们使用它定期将表复制到PostgreSQL中以进行快速报告。


您可以在活动状态下尝试此食谱。

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

支持备注字段。


现在是2016年,我不得不弄弄dbf软件包才能使其正常工作。这是仅将dbf文件导出到csv的python3版本

1
2
3
4
5
import dbf

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

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

1
2
3
4
5
import dbf

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

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

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


推荐阅读

    linux命令移除文件夹?

    linux命令移除文件夹?,命令,文件夹,通用,不了,数据,名称,档案,系统,文件,目

    linux系统监视器命令?

    linux系统监视器命令?,系统,情况,工具,信息,实时,电脑,平均,报告,管理,分析,

    linux分隔文件命令?

    linux分隔文件命令?,系统,信息,文件,命令,位置,指令,文件夹,目录,前缀,方法,l

    备份用命令linux系统?

    备份用命令linux系统?,系统,信息,设备,数据,软件,认证,命令,文件,备份,目录,L

    linux改文件权限命令?

    linux改文件权限命令?,系统,工具,档案,权限,文件,信息,命令,目录,选项,用户,

    linux系统中管道命令?

    linux系统中管道命令?,标准,系统,工作,命令,信息,通讯,管道,流向,连续,工具,L

    linux命令交换文件名?

    linux命令交换文件名?,命令,文件,数据,名称,工具,地址,软件,系统,基础知识,

    linux提取字段串命令?

    linux提取字段串命令?,数字,字符串,状态,工具,命令,文件,范本,样式,正则,字

    linux系统命令记不住?

    linux系统命令记不住?,系统,工作,基础,地址,网络,服务,命令,第一,名称,目录,

    linux系统刻盘命令?

    linux系统刻盘命令?,系统,软件,设备,工具,盘中,电脑,数据,官网,信息,网络,请

    linux系统还原的命令?

    linux系统还原的命令?,系统,数据,工具,软件,地址,工作,情况,信息,命令,位置,

    linux文件夹转移命令?

    linux文件夹转移命令?,系统,文件,命令,位置,材料,信息,工具,电脑,目录,源文

    linux系统命令都没了?

    linux系统命令都没了?,系统,单位,软件,命令,分析,第一,权威,公司,工作,异常,

    linux转移文件命令?

    linux转移文件命令?,文件,命令,密码,电脑,位置,名称,信息,系统,目录,目标,lin

    linux下替换文件命令?

    linux下替换文件命令?,文件,一致,评论,名称,标的,资料,工作,命令,字符串,内

    linux命令安装新系统?

    linux命令安装新系统?,系统,软件,工作,管理,在线,电脑,信息,基础,发行,数据,L

    linux文件nl命令?

    linux文件nl命令?,地址,工作,信息,系统,情况,标准,实时,对比,百度,命令,linux

    命令访问linux系统?

    命令访问linux系统?,系统,地址,信息,软件,命令,时间,工具,网络,管理,电脑,lin

    linux系统命令重启?

    linux系统命令重启?,系统,服务,名称,工作,网络,命令,设备,标准,时间,网络服