【发布时间】:2012-11-21 13:42:33
【问题描述】:
在不使用win32com.client 或其他依赖于微软软件的软件包的情况下,将 .dbf 文件转换为 .csv 文件的最佳方式(最低计算成本)是什么?
【问题讨论】:
标签: python csv io python-2.6 dbf
在不使用win32com.client 或其他依赖于微软软件的软件包的情况下,将 .dbf 文件转换为 .csv 文件的最佳方式(最低计算成本)是什么?
【问题讨论】:
标签: python csv io python-2.6 dbf
您可以使用dbf package 读取 dBase 文件。该软件包支持直接将表写入 CSV,或者如果您需要更多控制,您可以使用来自csv 标准库模块的Writer class 编写自己的表。
作为纯 Python,它可能不是最快的解决方案,但它应该是可移植的。
【讨论】:
最近,我一直在使用以下代码进行快速而肮脏的 csv 到 dbf 转换,主要用于准备 csv 文件以导入 ArcGIS 文件地理数据库。代码使用dbf package。
import dbf, os
def csv_to_dbf(inCSV,outDBF):
outFile = open(<temporary CSV>),'w')
with open(inCSV,'r') as f:
count = 0
for line in f:
if count == 0: header = line.rstrip("\n").split(",")
else: outFile.write(line)
count +=1
dbf.from_csv(csvfile=<temporary CSV>, field_names=header, filename= outDBF ,to_disk=True)
os.remove(<temporary CSV>)
【讨论】: