如何使用Python将.csv文件转换为.dbf文件?
我想知道怎么用Python脚本把一个.csv文件转换成.dbf文件。我在网上找到了一段代码,但我不太确定这段代码是否可靠。有没有什么模块可以实现这个功能呢?
5 个回答
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),那么你引用的那个食谱应该可以满足你的需求。