代码之家  ›  专栏  ›  技术社区  ›  Tom Gruff

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

  •  23
  • Tom Gruff  · 技术社区  · 18 年前

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

    使现代化 :谢谢@cnu,我用了尤斯迪·桑托索的 dbf.py .fpt 不 .FPT 这就是文件名从Windows传过来的原因。

    6 回复  |  直到 18 年前
        1
  •  17
  •   Anders Sandvig    18 年前

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

        2
  •  12
  •   Steve Koch robince    13 年前

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

    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文件,然后它就工作了。

        3
  •  9
  •   Kirk Strauser    14 年前

    如果你还在检查,我有一个GPLfoxpro到PostgreSQL的转换器 https://github.com/kstrauser/pgdbf

        4
  •  8
  •   Xymostech    12 年前

    你可以试试这个 recipe on Active State .

    还有一个 DBFReader module

    支持 memo fields .

        5
  •  5
  •       17 年前
        6
  •  5
  •   Shawn    10 年前

    现在是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)