DBF/XBase文件的Pythonic读取器和写入器
项目描述
YDbf
YDbf - 以Pythonic方式读取和写入DBF/XBase文件。该库是用纯Python编写的,没有外部依赖。
YDbf与Python 2.7+和3.5+兼容。
YDbf的优势
- 导出数据到DBF文件
- 从DBF文件导入数据
- 以流的形式从DBF文件读取数据
YDbf不适用的情况
- 对DBF文件中记录的随机访问
- 备忘字段
读取DBF
YDbf的入口点是open
函数
dbf = ydbf.open('simple.dbf')
您可以使用文件名,或者已经以二进制模式打开的文件
fh = open('simple.dbf', 'rb')
dbf = ydbf.open(fh)
for record in dbf:
...
您还可以使用with
语句
with ydbf.open('simple.dbf') as dbf:
for record in dbf:
...
每条记录都是一个字典,其键是字段名。
写入DBF
YDbf默认以读取模式打开文件,但您可以将选项mode
设置为写入模式
dbf = ydbf.open('simple.dbf', 'w', fields)
或自己打开文件
fh = open('simple.dbf', 'wb')
dbf = ydbf.open(fh, 'w', fields)
fields
是DBF文件的结构描述,它是写入模式所需的选项。结构是字段描述的序列,其中每个字段由元组(NAME, TYPE, SIZE, DECIMAL)描述。NAME是字段名,TYPE是DBF字段的类型('N'表示数字,'C'表示字符,'D'表示日期,'L'表示逻辑),DECIMAL是精度(仅对'N'类型有用)。例如
fields = [
('ID', 'N', 4, 0),
('VALUE', 'C', 40, 0),
('UPDATE', 'D', 8, 0),
('VISIBLE', 'L', 1, 0),
]
YDbf默认使用Unicode为'C'字段,因此您可能需要定义用于DBF文件的编码。UTF-8不受支持,您只能使用8位编码。
dbf = ydbf.open('simple.dbf', 'w', fields, encoding='cp1251')
dbf.write(data)
YDbf将data
作为迭代器获取,其中每个项都是一个字典,其键是字段名。例如
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)},
]
项目详情
关闭
YDbf-0.4.1.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ea6098bcef11b7641a4c61454761728ab0abc54e918da90e18d5b5d89261f803 |
|
MD5 | a648b669cb06369172b37e04f0b936e6 |
|
BLAKE2b-256 | 06107b2ceb70bde10b4620f87715bbdd7a531593ea86868a0136db6570558955 |