dbf數據庫作為一種簡單的數據庫,曾經廣泛使用。現在在金融領域還是有很多的應用之處,工作中遇到此類的問題,在此記錄一下。
1. 讀取dbf
''' 讀取DBF文件 ''' def readDbfFile(filename): table = dbfread.DBF(filename, encoding='GBK') for field in table.fields: print(field) for record in table: for field in record: print(field, record[field]) for delete_record in table.delete: print(delete_record)
需要倒入外部庫:
import dbfread
代碼解釋:
上面的例子分別讀取了dbf的列頭,全部的記錄和刪除的記錄
此方法,python2.x和python3.x都是通用的。
2. 寫dbf
''' 寫DBF文件 @filename 文件名 @header 列頭 @content 內容 ''' def writeDbfFile(filename, header, content): # 打開dbf db = dbf.Dbf(filename, new=True) # 寫列頭 for field in header: # 此處需要改成長度可配的,長度太短會導致數據被截斷 if type(field) == unicode: field = field.encode('GBK') db.addField((field, 'C', 20)) # 寫數據 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()
需要的外部庫:
from dbfpy import dbf
代碼解釋:
寫dbf的步驟,先新建一個dbf文件,先寫入列頭,然后每次新增一條記錄,寫入記錄;最后關閉dbf文件。
此方法python2.x可用
