幫乙個中科院小學妹寫的乙個小指令碼,主要是利用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主要的目的在於運算能力較強...