将DBF文件批量转换为Python中的CSV文件

时间:2015-02-12 14:00:42

标签: python dbf

此前有相关主题,但所提供的代码不正确。

有人可以发布一个可靠的代码来批量处理dbf到csv吗?

2 个答案:

答案 0 :(得分:0)

我有一堆(非GIS)DBF文件需要转换成不同的格式(CSV,DataFrames,HDF,SQL等),所以我写了一个名为simpledbf的最小转换模块。它没有做任何花哨的事情,但它将使用Python> = 2.7和> = 3.4转换为CSV,而没有任何其他依赖项。

例如,您可以执行以下操作(未经测试):

import os
from simpledbf import Dbf5
all_files = os.listdir('.')
dbfs = [f for f in all_files if f.endswith('dbf')]
for dbf in dbfs:
    data = Dbf5(dbf)
    data.to_csv(dbf[:-3] + 'csv')

希望有所帮助。

答案 1 :(得分:0)

This code worked

导入操作系统 导入arcpy import csv

def dbf2csv(dbfpath,csvpath):     '''将.dbf文件或任何shapefile / featureclass转换为csv文件     输入:         dbfpath:.dbf文件[input]或featureclass的完整路径         csvpath:.csv文件的完整路径[输出]

'''
#import csv
rows = arcpy.SearchCursor(dbfpath)
csvFile = csv.writer(open(csvpath, 'wb')) #output csv
fieldnames = [f.name for f in arcpy.ListFields(dbfpath)]

allRows = []
for row in rows:
    rowlist = []
    for field in fieldnames:
        rowlist.append(row.getValue(field))
    allRows.append(rowlist)

csvFile.writerow(fieldnames)
for row in allRows:
    csvFile.writerow(row)
row = None
rows = None