xls csv檔案轉換成dbf檔案

2021-08-19 17:52:39 字數 2382 閱讀 1758

幫乙個中科院小學妹寫的乙個小指令碼,主要是利用python中的pandas,xlrd,dbfpy包將excel中的xls/csv檔案中轉化成dbf檔案

pip install xlrd

pip install dbfpy

**如下

# -*- coding: utf-8 -*-

__author__ = 'lihailin'

__mail__ = '[email protected]'

__date__ = '2018-05-04'

__version__ = 1.0

import pandas as pd

import os,sys

from dbfpy import dbf

import csv

def xls2csv(xlsfile, csvfilename):

# excel檔案轉csv

data = pd.read_excel(xlsfile, 'pcp_lookup', index_col=0)

data.to_csv(csvfilename, encoding='utf-8')

def gendbfheader(dbfdb, csvheader):

'''生成dbf檔案表頭

args:

dbfdb: dbf類例項

csvheader: list, 其值為字串用於建立dbf表頭的字段

'''for filed in csvheader:

# print filed,'--------'

tmp = (filed, 'c', 25) # 定義字段

dbfdb.addfield(tmp)

return dbfdb

def writedbfdata(dbfdb, dbfdata):

'''寫資料到dbf檔案

args:

dbfdb: dbf類例項

dbfdata: dict, key為dbf的header中的字段

'''for onedata in dbfdata:

# print onedata

rec = dbfdb.newrecord()

for key in onedata.keys(): # 對每條記錄的所有欄位寫資料

# print(key)

rec[key] = onedata[key]

rec.store()

def csv2dbf(csvfile, dbffile):

# csv檔案轉dbf檔案

with open(csvfile, 'rb') as csvfile:

# dbf寫表頭

reader = csv.reader(csvfile, delimiter=',', quotechar='|')

header_row = next(reader)

db = dbf.dbf(dbffile, new=true)

db = gendbfheader(db, header_row)

with open(csvfile, 'rb') as csvfile:

# 寫dbf資料

reader = csv.dictreader(csvfile) # 字典形式

writedbfdata(db, reader)

db.close()

def main():

# 遍歷乙個資料夾下的所有.xlsx檔案,並將其轉換成.dbf檔案

xlsdictory = '.' #資料夾

for xlsfile in os.listdir(xlsdictory):

tmp = xlsfile.split('.')[0]

# if '.xlsx' in xlsfile:

# continue

# if '.csv' not in xlsfile:

# continue

csvfilename = '%s.csv' % tmp

if '.xlsx' in xlsfile: # 如果是.xlsx先轉成.csv

xls2csv(xlsfile, csvfilename)

dbffilename = '%s.dbf' % tmp

csv2dbf(csvfilename, dbffilename)

os.system('mkdir dbffile')

os.system('mv *.dbf dbffile')

if __name__ == '__main__':

main()

python2.7

dbfpy doc

如何將excel檔案轉化成csv格式

python csv

webarchive檔案轉換成htm文

webarchive檔案轉換成htm檔案 xhbaxf mac os x系統帶有檔案轉換功能,可以把webarchive檔案變成html檔案。方法是 step 1 建立乙個資料夾,把你的webarchive檔案放入資料夾內。step 2 在終端 terminal 下輸入 textutil conve...

憑證轉換成 P12 檔案

在 mac os 將 iphone 開發人員憑證轉換成 p12 檔案 在 鑰匙圈訪問 中選取 鑰匙 類別。選取與 iphone 開發憑證 相關的專用金鑰。專用金鑰由 iphone 開發人員所指定 名字 姓氏 與其配對的公用憑證。選取 檔案 輸出專案 將您的鑰匙儲存為個人資訊交換 p12 檔案格式。電...

shp檔案轉換成svg檔案

依據展現平台硬體規格及運算能力的差異,mobile svg可分為svg b basic 及svg t tiny 兩種不同的profiles。以相容性角度來看待這些不同的profiles,svg t 可說是svg b的子集合,而svg b又是svg 1.1的子集合。svg b主要的目的在於運算能力較強...