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 是字段的名称,TYPDBF类型的字段('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)},]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
swing Java按钮/网格布局   java列出Google日历中的所有事件   java无效:单击API publisher test按钮后连接到后端时出错   带有内部赋值的java While循环导致checkstyle错误   java为什么trimToSize/ensureCapacity方法提供“公共”级访问?   文件输出流的java问题   ListIterator和并发修改异常的java问题   java如何使用两个URL映射   无法识别使用“./../”构造的字符串java相对路径,为什么?   首次写入remotelyclosedsocket不会触发异常,对吗?JAVA   java OneDrive REST API为文件上载提供了400个无效谓词   Java泛型、集合接口和对象类的问题   OpenSSL Java安全提供程序   jmeter java运行jmx禁用操作