dbf/xbase文件的pythonic读写器
ydbf-py3的Python项目详细描述
从python读/写dbf(dbase/xbase)文件。这是条纯Python 没有外部依赖项的实现。
快速启动
pip install ydbf-py3
读数
ydbf的入口点是一个open函数:
dbf=ydbf.open('simple.dbf')
您可以使用文件名,或者已经打开(以二进制模式)文件:
withydbf.open('simple.dbf')asdbf:forrecordindbf:...
每个记录都表示为dict,其中键是字段的名称。
写作
默认情况下,ydbf打开文件进行读取,但可以将选项mode设置为 打开进行写入:
withydbf.open('simple.dbf','w',fields)asdbf:dbf.write(data)
或传入文件句柄:
withopen('simple.dbf','wb')asfh:dbf=ydbf.open(fh,'w',fields)
fields是dbf文件的结构描述,它是 写作模式。定义为字段描述序列的结构, 其中由元组(NAME, TYP, SIZE, DEC)描述的每个字段。其中NAME 是字段的名称,TYP–DBF类型的字段('N'表示数字,'C'表示 char,'D'表示日期,'L'表示逻辑),dec是一个精度(对^{tt9}有用$ 仅键入)。例如,如下所示:
fields=[('ID','N',4,0),('VALUE','C',40,0),('UPDATE','D',8,0),('VISIBLE','L',1,0),]
默认情况下,ydbf对'C'字段使用unicode,因此您可能需要定义 用于dbf文件的编码。遗憾的是,utf-8不可用,只有 旧的8位。
dbf=ydbf.open('simple.dbf','w',fields,encoding='cp1251')dbf.write(data)
ydbf获取data作为迭代器,其中每个项都是dict,其中 键是字段的名称。对于早期定义的示例,它可能看起来像
data=[{'ID':1,'VALUE':'ydbf','VISIBLE':True,'UPDATE':datetime.date(2009,7,14)},{'ID':2,'VALUE':'ydbf-dev','VISIBLE':False,'UPDATE':datetime.date(2009,5,15)},{'ID':3,'VALUE':'pytils','VISIBLE':True,'UPDATE':datetime.date(2009,5,11)},]