2

我想使用 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()

如果能反过来做类似的事情,那就太好了。

谢谢!

4

2 回答 2

1

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

有希望的答案(除其他外)是使用csv 库从 csv 文件中读取数据。第三方dbf库可以为你写一个dbf文件。

于 2011-03-22T15:58:09.177 回答
0

例如,您可以尝试:

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

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

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

于 2010-10-09T22:43:06.570 回答