代码脚本:
【免费】xls或者csv文件转dbf(python脚本)资源-CSDN文库
需要:python2.7环境,安装dbfpy:dbfpy - Browse Files at SourceForge.net
需要包:import os ,csv
from dbfpy import dbf
import pandas as pd
完整代码如下,支持数据库中的中文(有指正交流可联系Q:775915005)
使用方法:修改目录位置
# -*- coding:cp936 -*-
# ---------------------------------------------------------------------------
# Author: LGZ
# Created on:
# Reference:
# coding:cp936 or coding:utf-8
# ---------------------------------------------------------------------------
import logging, os ,csv
from dbfpy import dbf
import pandas as pd
import numpy as np
def xls2csv(xlsFile, csvFileName, sheet_name=0):
# excel文件转csv
data = pd.read_excel(xlsFile)
data.to_csv(csvFileName, encoding='gbk',index=False)
if __name__ == '__main__':
"""脚本单独使用时运行以下内容"""
"""----------------------------------------------"""
"""---------------------PARA---------------------"""
path = r"E:\PY\工作簿 - 副本.csv" # 修改目录位置,可以是.xls or .xlsx or .csv
csvFileName = path.split(".")[0] + ".csv"
dbfFileName = path.split(".")[0] + ".dbf"
if ".csv" not in path: # 数据如果是.xls or .xlsx
xls2csv(path, csvFileName, sheet_name=0)
db = dbf.Dbf(dbfFileName, new=True)
with open(csvFileName, 'r') as csvfile:
# 创建csv阅读器对象
# reader = csv.DictReader(csvfile)
reader = csv.reader(csvfile)
row_list = list(reader)
Fieldrow = row_list[0]
for r in Fieldrow:
db.addField((r, "C", 255))
for num, row in enumerate(row_list, 1):
# 如果行号=1,跳过
if num == 1:
continue
rec = db.newRecord()
for n,r in enumerate(Fieldrow):
rec[r] = row[n]
rec.store()
db.close()
参考:
xls/csv文件转换成dbf文件_python xls转dbf-CSDN博客
Python modules for accessing .dbf (xBase) files (sourceforge.net)