繁体   English   中英

从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文件一无所知,但它很容易从我女朋友的业务中读取一个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编辑:Per Ethan Furman的评论,我应该指出,除了DBF文件之外,我实际上不知道哪些数据文件是必需的。 我第一次运行脚本,只有DBF可用,它抱怨缺少支持文件。 所以,我只是复制了BAK,CDX,FPT(不是我在编辑之前说过的FBT),TBK文件然后就可以了。

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

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

您还可以尝试使用DBFReader模块

用于支持备忘录字段

查看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 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM