一、前言
因为工作原因,需要处理多个*.dbf的数据表,单表最大记录在20万以上,而自己之前从未接触过ms visual foxpro和它的命令,虽然现学现用也可以,但是还是想用python执行SQL语句来处理。这就开始了漫漫探索之路,因为也是第一次接触,探索过程难免有错,还望各位批评指正。
二、探索历程
(一)使用第三方库直接操作*.dbf
这是第一想法,google了一下,发现还是有的,有可用的dbfread、dbf等第三方库,这两个库都安装使用了,但是有关的文档和介绍比较简单,网上找到的资料很少,库的使用方法和其它方面也有其局限性。
1、dbfread库
google的时候发现这个库的口碑还不错,首先用命令pip install dbfread安装,马上写段测试代码尝试便捷性。
# 打卡*.dbf数据表,输出所有记录
from dbfread import DBF
table = DBF("test.dbf")
for r in table:
print(r)
通过查看文档,可以将dbf数据读取后转成其它数据集,如Sqlite, CSV, Pandas等,但是方法都是读取*.dbf其中的数据,对于数据的处理和变化需要转换到其它数据表后处理。该库对于仅仅读取数据来说是可以满足的。另外根据资料说明,改库对于中文的读取会报错,注意编码的变化。
2、dbf库
该库相对于dbfread来说,方法较为丰富,同时也支持执行sql语句。
同样,使用命令pip install dbf安装,该库没有太多