Ich bin sehr neu in der Python-Programmierung und wurde beauftragt, ein Programm zum Exportieren einer CSV-Datei aus einer File-Geodatabase-Feature-Class zu schreiben. Die CSV sollte nur bestimmte Felder enthalten und die exportierten Datensätze sollten auf dem Datum der letzten Bearbeitung basieren. Mit anderen Worten, die CSV-Datei wird täglich erstellt und enthält nur die letzten Funktionen, die basierend auf dem Feld "Datum der letzten Bearbeitung" hinzugefügt wurden.
Ich habe das bisher:
import arcpy
import os
import csv
import domainvalues
def export_to_csv(dataset, output, dialect):
"""Output the data to a CSV file"""
# create the output writer
out_writer = csv.writer(open(output, 'wb'), dialect=dialect)
# return the list of field names and field values
header, rows = domainvalues.header_and_iterator(dataset)
# write the field names and values to the csv file
out_writer.writerow(map(domainvalues._encodeHeader, header))
for row in rows:
out_writer.writerow(map(domainvalues._encode, row))
if __name__ == "__main__":
# Get parameters
dataset_name = arcpy.GetParameterAsText(0)
output_file = arcpy.GetParameterAsText(1)
delim = arcpy.GetParameterAsText(2).lower()
dialect = 'excel'
if delim == 'comma':
pass
else:
dialect = 'excel-tab'
try:
export_to_csv(dataset_name, output_file, dialect)
except Exception as err:
arcpy.AddError('Error: {0}'.format(err))
Es exportiert jedoch alles.
arcgis-desktop
python
arcpy
csv
user35267
quelle
quelle
Antworten:
Eine einfachere Lösung wäre die Konvertierung in das DBF-Dateiformat. In diesem Fall können Sie die sofort einsatzbereite Tabelle in Tabelle (Konvertierung) verwenden . Mit diesem Tool können Sie auch frei auswählen, welche Felder als FieldMappings aufgenommen werden sollen, und eine DBF-Datei direkt ausgeben.
quelle
This tool can convert input tables to dBASE (.dbf), geodatabase (personal, file, or SDE), or INFO tables
ArcGIS verfügt bereits über ein Tool namens " Feature-Attribute nach ASCII exportieren ", das sich in der Toolbox "Raumstatistik -> Dienstprogramme" befindet.
Der Vorteil dieses Tools gegenüber "Tabelle zu Tabelle" besteht darin, dass Sie 1) Ihr Trennzeichen (Leerzeichen, Komma, Tabulator) definieren, 2) die zu exportierenden Felder auswählen und 3) auswählen können, ob Ihre Feldnamen exportiert werden sollen oder nicht die CSV-Datei. Es ist auch ein Python-Skript, sodass Sie diese Datei kopieren und ganz einfach Ihre eigene Variante davon erstellen können.
Wenn Sie also ein Modell oder Skript erstellen möchten, um nur die neuesten Features basierend auf dem Feld "Datum der letzten Bearbeitung" zu exportieren, stellen Sie dem Tool "Feature-Attribute nach ASCII exportieren" einfach das Tool "Layer nach Attribut auswählen" voran, das Sie aufrufen aus der Abfrage, die Sie ausführen möchten.
quelle
Angenommen, Sie haben eine GDB-Datei
treedn.gdb
mit einer aufgerufenen Tabelletrees
und möchten in eine aufgerufene CSV exportierentrees.csv
.Sie können etwas Ähnliches tun:
Der gesamte Artikel befindet sich hier .
quelle
ArcGIS 10.3 verfügt über eine neue Funktion ConvertTableToCsvFile_roads zum Konvertieren einer Tabelle in eine CSV-Datei. Dies ist recht einfach zu bedienen:
Siehe hier das vollständige Dokument.
Beachten Sie, dass Sie eine Toolbox-Lizenz für Straßen und Autobahnen benötigen , um diese zu nutzen. Ab Version 10.4 wird diese Funktion aufgerufen
ConvertTableToCsvFile_locref
.quelle