Python3读写dbf文本
安装环境
pip install dbf
关于dbf的文档可以在一下网址了解dbf文档(https://pythonhosted.org/dbf/)
还有github的地址(https://github.com/ethanfurman/dbf/tree/master/dbf)
操作示例与介绍
- 把现有的dbf文件的数据,copy到一个指定的模板里面,建议此方式
'''
把现有的dbf文件的数据,copy到一个指定的模板里面,并填充新增的项
'''
import dbf
src_filename = 'xxxx\\test.DBF'
des_filename = 'xxxx\\template.DBF'
table = dbf.Table(
filename=des_filename,
codepage='cp936',
on_disk=True,
)
table.open(mode=dbf.READ_WRITE)
src_table = dbf.Table(
filename=src_filename,
codepage='cp936',
)
src_table.open()
for i in src_table:
record_len = len(i)
one_data_list = i[0:record_len] + ['00','']
one_data = tuple(one_data_list)
table.append(record)
new_record = (1, '1', '测试', '20200831', '20200831', '1', '', '00', '')
table.append(new_record)
for record in table:
print(record)
print('--------')
print(record[0:9])
print([record.HGSQXH, record.HGZQZH, record.HGZHMC])
print('--------')
src_table.close()
table.close()
- 新建一个新的格式的dbf,笔者目前没有实际使用场景,在此给出说明文档给的示例,为了方便运行,做了一些修改。
import datetime
import dbf
table = dbf.Table(
filename='test',
field_specs='name C(25); age N(3,0); birth D; qualified L',
on_disk=False,
)
table.open(mode=dbf.READ_WRITE)
for datum in (
('Spanky', 7, dbf.Date.fromymd('20010315'), False),
('Spunky', 23, dbf.Date.fromymd('20010315'), True),
('Sparky', 99, dbf.Date(), dbf.Unknown),
):
table.append(datum)
for record in table:
print(record)
print('--------')
print(record[0:3])
print([record.name, record.age, record.birth])
print('--------')
custom = table.new(
filename='test_on_disk',
default_data_types=dict(C=dbf.Char, D=dbf.Date, L=dbf.Logical),
)
with custom:
for record in table:
custom.append(record)
for record in custom:
dbf.write(record, name=record.name.upper())
print(record)
print('--------')
print(record[0:3])
print([record.name, record.age, record.birth])
print('--------')
table.close()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)