转至:https://blog.csdn.net/linhai1028/article/details/80211252

编写的一个小脚本,主要是利用python中的pandas,xlrd,dbfpy包将excel中的xls/csv文件中转化成dbf文件


一、安装相关包

pip install xlrd
pip install dbfpy

二、实现

代码如下:

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

__author__ = 'lihailin'
__mail__ = '415787837@qq.com'
__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()

环境

  1. python2.7

参考资料

  1. dbfpy doc
  2. 如何将excel文件转化成CSV格式
  3. python csv

xls/csv文件转换成dbf文件的更多相关文章

  1. [转载]webarchive文件转换成htm文件

    原文地址:webarchive文件转换成htm文件作者:xhbaxf Mac OS X系统带有文件转换功能,可以把webarchive文件变成html文件.方法是:   Step 1: 建立一个文件夹 ...

  2. 自制 Python小工具 将markdown文件转换成Html文件

    今天看到了一个Python库,名为markdown.瞬间就给了我一个灵感,那就是制作一个将markdown文件转换成html文件的小工具. 我的实验环境 操作系统: Windows 7 64位 旗舰版 ...

  3. <p><span style="font-size:14px">近期须要批量将PNM&#26684;式的文件转换成GIF文件。我尝试了例如以下的图像转换工具:</span></p>

    近期须要批量将PNM格式的文件转换成GIF文件.我尝试了例如以下的图像转换工具: ImageBatch:全然免费,但只支持PNG JPEG BMP GIF四种格式 OfficeConverter:在线 ...

  4. Protocol Buffer使用转换工具将proto文件转换成Java文件流程及使用

    Client与Server的网络通信协议传输使用google protobuf,服务器端使用的是Java 一. Protocol Buffersprotobuf全称Google Protocol Bu ...

  5. linux下的什么工具能将DVI文件转换成PostScript文件?

    答: dvips,此工具能将由Latex或Tex生成的DVI文件转换成PostScript文件,官网在此

  6. 15个最好的PDF转word的在线转换器,将PDF文件转换成doc文件

    PDF是一种文件格式,包含文本,图像,数据等,这是独立于操作系统的文件类型.它是一个开放的标准,压缩,另一方面DOC文件和矢量图形是由微软文字处理文件.该文件格式将纯文本格式转换为格式化文档.它支持几 ...

  7. chm文件转换成html文件,解决chm文件无法使用浏览器打开的问题

    每天学习一点点 编程PDF电子书免费下载: http://www.shitanlife.com/code CHM是英语“Compiled Help Manual”的简写,即“已编译的帮助文件”.CHM ...

  8. C# 将PowerPoint文件转换成PDF文件

    PowerPoint的优势在于对演示文档的操作上,而用PPT查看资料,反而会很麻烦.这时候,把PPT转换成PDF格式保存,再浏览,不失为一个好办法.在日常编程中和开发软件时,我们也有这样的需要.本文旨 ...

  9. 如何将hdf5文件转换成tflite文件

    我们用keras训练模型后,通常保存的模型格式类型为hdf5格式,也就是.h5文件. 但如果我们想要移植到移动端,特别是基于tensorflow支持的移动端,那就需要转换成tflite格式. 如何转换 ...

随机推荐

  1. 利用JavaScript与正则表达式判断输入账号格式是否正确

    在学习了HTML DOM对象后,做几个小练习来巩固一下所学内容. 正则表达式: 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE ...

  2. 八数码问题(8-Puzzle Problem)

    八数码问题(8-Puzzle Problem) P1379 八数码难题 - 洛谷 题目概述:在 \(3 \times 3\) 的棋盘上摆放着 \(8\) 个棋子,棋子的编号分别为 \(1\) 到 \( ...

  3. Python:使用pyinstaller打包含有gettext locales语言环境的项目

    问题 如何使用 pyinstaller 打包使用了 gettext 本地化的项目,最终只生成一个 exe 文件 起因 最近在用 pyhton 做一个图片处理的小工具,顺便接触了一下 gettext,用 ...

  4. 计算机电子书 2017 BiliDrive 备份

    下载方式 根据你的操作系统下载不同的 BiliDrive 二进制. 执行: bilidrive download <link> 链接 文档 链接 斯坦福 cs224d 深度学习与自然语言处 ...

  5. 浅谈FFT(快速傅里叶变换)

    前言 啊摸鱼真爽哈哈哈哈哈哈 这个假期努力多更几篇( 理解本算法需对一些< 常 用 >数学概念比较清楚,如复数.虚数.三角函数等(不会的自己查去(其实就是懒得写了(¬︿̫̿¬☆) 整理了一 ...

  6. JDBC工具包commons-dbutils的基本介绍

    感谢原文作者:simonXi-tech 原文链接:https://blog.csdn.net/simonforfuture/article/details/90480147 更多请查阅在线API文档: ...

  7. Git Push 免输 用户名和密码

    前言 在大家使用github的过程中,一定会碰到这样一种情况,就是每次要push 和pull时总是要输入github的账号和密码,这样不仅浪费了大量的时间且降低了工作效率.在此背景下,本文在网上找了两 ...

  8. php程序员经验

    PHP 学习计划流程2008-10-22 17:23PHP 学习计划流程1.看教程 (2-3月)大概1天1个章节,比如<PHP圣经>有32章,1个多月就看完了,当然后面的章节每章1天肯定看 ...

  9. Nginx的优化与防盗链

    Nginx的优化与防盗链 1.隐藏版本号 2.修改用户与组 3.缓存时间 4.日志切割 5.连接超时 6.更改进程数 7.配置网页压缩 8.配置防盗链 9.fpm参数优化 1.隐藏版本号: 可以使用 ...

  10. 根据经纬度坐标获得省市区县行政区划城市名称,自建数据库 java python php c# .net 均适用

    目录 步骤一.下载省市区边界数据 步骤二.解析CSV文件导入数据库 步骤三.在程序中根据坐标解析获得城市 在LBS应用中,根据坐标来解析获得对应是哪个城市是一个很常见的功能,比如App里面通过手机定位 ...