Python - 将CSV转换为DBF

时间:2010-10-09 20:11:10

标签: python csv dbf

我想使用python将csv文件转换为dbf(用于地理编码,这就是我需要dbf文件的原因) - 我可以轻松地在stat / transfer或其他类似程序中执行此操作但我想这样做我的脚本的一部分,而不是去外面的程序。似乎有很多帮助问题/答案将DBF转换为CSV,但我没有任何运气反过来。

使用dbfpy的答案很好,我只是没有运气弄清楚到底是怎么做的。

作为我正在寻找的一个例子,这里有一些我在网上找到的将dbf转换为csv的代码:

import csv,arcgisscripting
from dbfpy import dbf

gp = arcgisscripting.create()

try:
    inFile = gp.GetParameterAsText(0) #Input
    outFile = gp.GetParameterAsText(1)#Output
    dbfFile = dbf.Dbf(open(inFile,'r'))
    csvFile = csv.writer(open(outFile, 'wb'))
    headers = range(len(dbfFile.fieldNames))
    allRows = []
    for row in dbfFile:
        rows = []
        for num in headers:
            rows.append(row[num])
        allRows.append(rows)
    csvFile.writerow(dbfFile.fieldNames)
    for row in allRows:
        print row
        csvFile.writerow(row)
except:
    print gp.getmessage()

通过相反的方式获得类似的东西会很棒。

谢谢!

2 个答案:

答案 0 :(得分:1)

重复提问:Convert .csv file into .dbf using Python?

那里(或其他)有希望的回答是 使用csv library从csv文件中读取数据。第三方dbf library可以为您编写dbf文件。

答案 1 :(得分:0)

例如,您可以尝试:

您也可以在OpenOffice或Excel中打开CSV文件并以dBase格式保存。

我假设您要为Esri Shapefile格式创建属性文件或类似的东西。请记住,DBF文件通常使用CP 850等古老的字符编码。如果您的地理数据包含外语名称,则可能会出现问题。但是,Esri可能指定了不同的编码。

编辑:只是注意到您不想使用外部工具。