Soy muy nuevo en la programación de Python y me encargaron escribir un programa para exportar un archivo csv desde una clase de entidad de geodatabase de archivos. El csv debe contener solo ciertos campos y los registros exportados deben basarse en la última fecha de edición. En otras palabras, el archivo csv se creará diariamente con solo las últimas funciones agregadas en función del "último campo de fecha de edición".
Tengo esto hasta ahora:
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))
Sin embargo, está exportando todo.
arcgis-desktop
python
arcpy
csv
usuario35267
fuente
fuente
Respuestas:
Una solución más simple sería convertir a formato de archivo dbf, en cuyo caso puede usar la tabla a tabla lista para usar (conversión) . Esta herramienta también le da la libertad de seleccionar qué campos incluir como FieldMappings , así como también generar directamente un archivo .dbf.
fuente
This tool can convert input tables to dBASE (.dbf), geodatabase (personal, file, or SDE), or INFO tables
ArcGIS ya tiene una herramienta para hacer esto llamada " Exportar atributos de entidad a ASCII " que se encuentra en el cuadro de herramientas Estadísticas espaciales -> Utilidades.
La ventaja de esta herramienta sobre "Tabla a tabla" es que puede 1) definir su delimitador (espacio, coma, tabulación), 2) elegir los campos que desea exportar y 3) elegir si desea exportar o no sus nombres de campo a El archivo CSV. También es un script de Python, por lo que puede copiar ese archivo y crear su propia variante muy fácilmente.
Por lo tanto, si desea crear un modelo o script para exportar solo las características más recientes basadas en el "último campo de fecha de edición", simplemente preceda la herramienta "Exportar atributos de características a ASCII" con una herramienta "Seleccionar capa por atributo" donde llame fuera de la consulta que desea ejecutar.
fuente
Digamos que tiene un archivo GDB llamado
treedn.gdb
con una tabla llamadatrees
y desea exportar a un CSV llamadotrees.csv
.Puedes hacer algo similar a esto:
Todo el artículo se encuentra aquí .
fuente
ArcGIS 10.3 tiene una nueva función ConvertTableToCsvFile_roads para convertir una tabla en un archivo CSV. Esto es bastante sencillo de usar:
Vea aquí el documento completo.
Tenga en cuenta que necesita una licencia de la caja de herramientas Carreteras y autopistas para usarla. Desde la versión 10.4, se llama a esta función
ConvertTableToCsvFile_locref
.fuente