如何使用Python将.csv文件转换为.dbf文件?

11 投票
5 回答
13011 浏览
提问于 2025-04-16 08:31

我想知道怎么用Python脚本把一个.csv文件转换成.dbf文件。我在网上找到了一段代码,但我不太确定这段代码是否可靠。有没有什么模块可以实现这个功能呢?

5 个回答

5

使用 csv 可以从csv文件中读取数据。还有一个第三方的 dbf 库,可以帮你写出dbf文件。

补充说明:最开始我提到的是 dbfpy,但上面提到的库似乎更新得更频繁。

8

使用 dbf 包,你可以用类似下面的代码生成一个基本的 csv 文件:

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

这段代码会创建一个和你指定的名字相同的表格,里面会有字符型或备忘录型的字段,字段名称会是 f0、f1、f2 等等。

如果你想用不同的文件名,可以使用 filename 参数。如果你知道字段的名称,也可以使用 field_names 参数。

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

这里有一些比较基础的文档,可以查看 这里

声明:我是这个包的作者。

6

在网上你找不到一个可以直接读取CSV文件并写入DBF文件的工具,只需要提供两个文件路径就行。因为每个DBF字段你都需要指定类型、大小,以及(如果适用的话)小数位数。

有几个问题:

哪个软件会使用你生成的DBF文件?

其实没有一种“唯一”的DBF文件格式。你需要的是dBase III?dBase 4?7?还是Visual FoxPro?等等。

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

你用的是哪个版本的Python?

如果你的要求很简单(dBase III格式,没有非ASCII文本,文本长度小于等于254字节,使用Python 2.X),那么你引用的那个食谱应该可以满足你的需求。

撰写回答