python操作DBF文件(也称做数据库文件)
最近遇到一道面试题,用python3实现如下功能:有两个dbf文件1.dbf,2.dbf,将2.dbf文件中的数据插入到1.dbf中,重复数据无需插入。上网查了很多资料,得出标题给的结论,python操作DBF文件,python2.x支持读写删,python3.x只支持读删。外部库适用python版本实现功能pdfpypython2.x可以对DBF文件进行写入dbfreadpython2.x/3.
·
最近遇到一道面试题,用python3实现如下功能:有两个dbf文件1.dbf,2.dbf,将2.dbf文件中的数据插入到1.dbf中,重复数据无需插入。上网查了很多资料,看了很多外置库排了一些坑。
外部库 适用python版本 实现功能
pdfpy python2.x 可以对DBF文件进行写入
dbfread python2.x/3.x 可以对DBF文件的读取,删除
xlwt python2.x/3.x 可以对DBF文件进行写入
openpyxl python2.x/3.x 不可以对DBF文件进行读取
xlrd python2.x/3.x 不可以对DBF文件进行读取
xlsxwriter python2.x/3.x 还没试
总结:想要通过python3实现对DBF文件的读写,可以通过dbfread和xlwt这两个外置库。
知道了使用哪些库,那么面试题就解决了一大半。
from dbfread import DBF
import xlwt
table1=DBF('E:\pythoninterviewquestions\SCD_98_601_20200327_DJ.DBF',encoding='gbk',char_decode_errors='ignore')
table2=DBF('E:\pythoninterviewquestions\SCD_98_601_20200327_DJ_add.DBF')
list1=[table1,table2]
data=[]
row1=()
for i in list1:
for rows in i:
row1 =tuple(rows.keys())
temp=tuple(rows.values())
if temp not in data:
data.append(temp)
data.insert(0,row1)
# print(data)
# print(len(data))
#向meng_three.DBF写入
wb = xlwt.Workbook() #创建工作薄
f = wb.add_sheet('class1') #创建工作表
for i in range(len(data)):
for j in range(len(row1)):
f.write(i,j,data[i][j])
wb.save('E:\pythoninterviewquestions\meng_three.DBF')
更多推荐
已为社区贡献1条内容
所有评论(0)