我想使用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()
通过相反的方式获得类似的东西会很棒。
谢谢!
答案 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可能指定了不同的编码。
编辑:只是注意到您不想使用外部工具。