python讀寫dbf數據庫


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可用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM