此前有相关主题,但所提供的代码不正确。
有人可以发布一个可靠的代码来批量处理dbf到csv吗?
答案 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)
导入操作系统 导入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