2010-10-09 8 views
1

Я хотел бы преобразовать файл csv в dbf с помощью python (для использования в геокодировании, поэтому мне нужен файл dbf) - я могу легко сделать это в stat/transfer или других подобных программах, но Я хотел бы сделать как часть своего сценария, а не использовать внешнюю программу. Кажется, что есть много вопросов и ответов на вопросы для преобразования DBF в CSV, но мне не повезло наоборот.Python - конвертировать CSV в DBF

Ответ с использованием 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

Например, вы могли бы попробовать:

Вы также можете просто открыть файл CSV в OpenOffice или Excel и сохранить его в формате DBASE.

Я предполагаю, что вы хотите создать файлы атрибутов для формата Esri Shapefile или что-то в этом роде. Имейте в виду, что файлы DBF обычно используют древние кодировки символов, такие как CP 850. Это может быть проблемой, если ваши геоданные содержат имена на иностранных языках. Однако Esri может указать другую кодировку.

EDIT: только что отметил, что вы не хотите использовать внешние инструменты.

Смежные вопросы