Que script de Python para añadir campo a varias capas y despues llenarles

304
1
02-04-2020 06:36 AM
IGNPERU
New Contributor

una consulta tengo 20 capas shp en una carpeta,
a todas estas capas debo añadir un campo en su tabla de atributos, ponerle nombre en la cabecera, formato texto y de 30 digitos.....
despues llenarle a ese campo un link en comun para todos,
alguien me puede ayudar cual seria el script de Python, gracias

LOGRE DE UNA SOLA CAPA.

>>> import arcpy
... arcpy.AddField_management("Capital","ALCALDE","TEXT","","","20")

.................PERO COMO HAGO DE VARIAS Y LLENARLAS?

0 Kudos
1 Reply
JoshuaBixby
MVP Esteemed Contributor
import arcpy
import os

ws = r"C:\tmp" # ruta al espacio de trabajo que contiene archivos shp
exp = "Hola Mundo" # texto para nuevo campo

AddField_kwargs = {"field_name":"ALCALDE", "field_type":"TEXT", "field_length":30}
CalcField_kwargs = {"field":"ALCALDE", "expression": "'{}'".format(exp), "expression_type":"PYTHON3"}

walk = arcpy.da.Walk(ws, datatype="FeatureClass")
for root, dir, files in walk:
    for file in files:
        if not file.endswith(".shp"): continue # clase de entidad de filtro solo para archivos shp
        path = os.path.join(root, file) # ruta completa al archivo shp
        arcpy.AddField_management(path, **AddField_kwargs)
        arcpy.CalculateField_management(path, **CalcField_kwargs)