11

如何使用 python 脚本将 .csv 文件转换为 .dbf 文件?我在网上找到了这段代码,但我不确定它有多可靠。有没有具有此功能的模块?

4

5 回答 5

8

Using the dbf package you can get a basic csv file with code similar to this:

import dbf
some_table = dbf.from_csv(csvfile='/path/to/file.csv', to_disk=True)

This will create table with the same name and either Character or Memo fields and field names of f0, f1, f2, etc.

For a different filename use the filenameparameter, and if you know your field names you can also use the field_names parameter.

some_table = dbf.from_csv(csvfile='data.csv', filename='mytable',
        field_names='name age birth'.split())

Rather basic documentation is available here.

Disclosure: I am the author of this package.

于 2011-07-13T02:18:52.657 回答
6

您不会在网上找到任何读取 CSV 文件并写入 DBF 文件的东西,这样您就可以调用它并提供 2 个文件路径。对于每个 DBF 字段,您需要指定类型、大小和(如果相关)小数位数。

一些问题:

什么软件会使用输出的 DBF 文件?

没有“the”(一种且唯一的)DBF 文件格式之类的东西。您需要 dBase III 吗?dBase 4?7? 视觉 FoxPro?ETC?

您需要编写的文本字段的最大长度是多少?您有非 ASCII 文本吗?

哪个版本的 Python?

如果您的要求很少(dBase III 格式,没有非 ASCII 文本,文本 <= 254 字节长,Python 2.X),那么您引用的食谱应该可以完成这项工作。

于 2010-12-15T22:48:38.423 回答
5

使用csv从 csv 文件中读取数据。第三方dbf 库可以为你写一个dbf文件。

编辑:最初,我列出dbfpy了,但上面的库似乎更新得更积极。

于 2010-12-14T15:35:41.500 回答
2

据我所知,没有一个是精心打磨的。多年来,我不得不多次使用 xBase 文件,并且我不断发现自己在必须这样做时编写代码来执行此操作。在我的一个备份中,我有一个非常实用的纯 Python 库来执行此操作,但我不知道它在哪里。

幸运的是,xBase 文件格式并不是那么复杂。当然,您可以在 Internet 上找到规范。乍一看,您链接到的模块看起来不错,但当然要在使用它之前复制您正在使用的任何数据。

一个可靠的、读/写的、功能齐全的 xBase 库,其中包含所有的花里胡哨的东西,已经在我的 TODO 列表中列出了一段时间......如果我幸运的话,我什至可以在今年剩下的内容中找到它......(可能不是,虽然,可悲的是)。

于 2010-12-14T15:37:14.770 回答
2

我在这里创建了一个 python 脚本。它应该可以针对任何 csv 布局进行定制。在这可能之前,您确实需要知道您的 DBF 数据结构。该脚本需要两个 csv 文件,一个用于 DBF 标头设置,一个用于正文数据。祝你好运。

https://github.com/mikebrennan/csv2dbf_python

于 2013-09-26T18:58:05.367 回答