Je suis très nouveau dans la programmation Python et j'ai été chargé d'écrire un programme pour exporter un fichier csv à partir d'une classe d'entités de géodatabase fichier. Le fichier csv ne doit contenir que certains champs et les enregistrements exportés doivent être basés sur la dernière date de modification. En d'autres termes, le fichier csv sera créé sur une base quotidienne contenant uniquement les dernières fonctionnalités ajoutées en fonction du "dernier champ de date de modification".
J'ai ceci jusqu'à présent:
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))
Cependant, tout est exporté.
arcgis-desktop
python
arcpy
csv
user35267
la source
la source
Réponses:
Une solution plus simple serait de convertir au format de fichier dbf, auquel cas vous pouvez utiliser la table en table prête à l'emploi (conversion) . Cet outil vous permet également de sélectionner les champs à inclure en tant que FieldMappings ainsi que de générer directement un fichier .dbf.
la source
This tool can convert input tables to dBASE (.dbf), geodatabase (personal, file, or SDE), or INFO tables
ArcGIS dispose déjà d'un outil pour ce faire appelé « Exporter les attributs d'entité vers ASCII » qui se trouve dans la boîte à outils Statistiques spatiales -> Utilitaires.
L'avantage de cet outil sur "Table à Table" est que vous pouvez 1) définir votre délimiteur (espace, virgule, tabulation), 2) choisir les champs que vous souhaitez exporter et 3) choisir d'exporter ou non les noms de vos champs vers le fichier CSV. Il s'agit également d'un script Python, vous pouvez donc copier ce fichier et en créer très facilement votre propre variante.
Donc, si vous souhaitez créer un modèle ou un script pour exporter uniquement les fonctionnalités les plus récentes en fonction du "dernier champ de date de modification", il suffit de faire précéder l'outil "Exporter les attributs de fonctionnalité vers ASCII" d'un outil "Sélectionner la couche par attribut" où vous appelez sur la requête que vous souhaitez exécuter.
la source
Disons que vous avez un fichier GDB appelé
treedn.gdb
avec une table appeléetrees
et que vous souhaitez exporter vers un CSV appelétrees.csv
.Vous pouvez faire quelque chose de similaire à ceci:
l'article entier se trouve ici .
la source
ArcGIS 10.3 possède une nouvelle fonction ConvertTableToCsvFile_roads pour convertir une table en fichier CSV. C'est assez simple à utiliser:
Voir ici le doc complet.
Sachez que vous avez besoin d'une licence de boîte à outils Roads and Highways pour l'utiliser. Depuis la version 10.4, cette fonction est appelée
ConvertTableToCsvFile_locref
.la source