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
比如,你可以试试以下链接:
你也可以直接在OpenOffice或Excel中打开CSV文件,然后保存为dBase格式。
我猜你是想为Esri Shapefile格式创建属性文件之类的东西。要注意的是,DBF文件通常使用一些比较古老的字符编码,比如CP 850。如果你的地理数据中包含外语名字,这可能会造成问题。不过,Esri可能指定了不同的编码。
编辑:我刚注意到你不想使用外部工具。
1
这个问题在这里已经有人问过了:如何用Python把.csv文件转换成.dbf文件?