admin 管理员组文章数量: 1184232
想要实现打开dbf文件后写入数据,奈何python3网上没有任何方法,有一个人自己写了个类,基于个人要求,需要操作dbf文件实现内容添加,以下方法需要python2的环境来是实现。
需求:向八个dbf文件中插入数据
一。需要导入的模块:
import string
import time
import random
import sys
import os
import csv
import getopt
from dbfpy import dbf
import itertools
import warnings
warnings.filterwarnings('ignore')
二,实现dbf文件操作:
class Do_to_Dbf(object):
def __init__(self,Cilent_id,Fund_acc,SecuAcc):
self.Cilent_id=Cilent_id
self.Fund_acc = Fund_acc
self.SecuAcc=SecuAcc
# 创建新的dbf文件
def writeDbfFile(self,filename,header,content):
db=dbf.Dbf(filename,new=True)
for field in header:
if type(field) == unicode:
field = field.encode('GBK')
db.addField((field, 'C', 60))
for record in content:
rec = db.newRecord()
for key, value in itertools.izip(header, record):
if type(value) == unicode:
rec[key] = value.encode('GBK')
else:
rec[key] = value
rec.store()
db.close()
# 再原有的dbf文件中追加内容
def add_DbfFile_content(self,filename,content):
db=dbf.Dbf(filename)
for record in content:
rec = db.newRecord()
for key, value in itertools.izip(db.header, record):
if type(value) == unicode:
rec[key] = value.encode('GBK')
else:
rec[key] = value
rec.store()
db.close()
def get_code(self):
code = [[], []]
code[0] = ['000002', '000060', '159901', '159930', '300030']
code[1] = ['510010', '510300', '600036', '688001', '700360']
return code
## 下边的函数create开头的都是创建新的dbf文件,根据需要的表头来 ##
## 下边的函数add开头的都是再原有dbf文件下添加内容 ##
def create_custinfo(self):
header=['CilentID','CilentName','BranchID','EncMode','TradePwd','Status']
pwd = '34614C364D51746D79335231584559444D68337470673D3D'
content=[]
for i in range(len(self.Cilent_id)):
part=[
self.Cilent_id[i],
self.Cilent_id[i],
self.Cilent_id[i][:4],
1,
pwd,
0]
content.append(part)
filename='doc/'+'custinfo_v01_12360000_3_%s.dbf'%(time.strftime('%Y%m%d_%H',time.localtime()))
self.writeDbfFile(filename,header,content)
def create_fundasset(self):
header=['FundAcc','CurType','FundAvlBal','FundFrzBal','FundBal','FBuySale','FUncBuy','FUncSale','FFundTrsf']
content=[]
for i in range(len(self.Fund_acc)):
part=[
self.Fund_acc[i],
0,
'F2195BC3951AAD0465B72CE593B79141',
'A160C3DB0CE4098FDCD07FC86865BF33',
'F2195BC3951AAD0465B72CE593B79141',
'A160C3DB0CE4098FDCD07FC86865BF33',
'A160C3DB0CE4098FDCD07FC86865BF33',
'A160C3DB0C版权声明:本文标题:精通Python:一文学会DBF文件读写技巧 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1770742988a3537089.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论