1 votos

Búsqueda de varios MXD e identificación de los que tienen elementos gráficos mediante ArcPy

¿Cómo puedo identificar todos los archivos mxd que contienen gráficos?

Creo que está cerca:

import arcpy
import os

srcPath = "my_path"

mxd_lst = [f for f in os.listdir(srcPath) if f.endswith('.mxd')]

for mxd in mxd_lst:
    for dfrm in arcpy.mapping.ListDataFrames(mxd):

        if "GRAPHIC_ELEMENT" in dfrm != None:  # *I'm making this line up*
            print(mxd + " has graphic elements")

        else:
            print(mxd + " does not contain graphics")

4voto

Dragon4th Puntos 38

arcpy.mapping.ListLayoutElements es lo que necesitas. Consulte los documentos para más información sobre otros tipos de elementos (por ejemplo, elementos de texto)

He modificado ligeramente tu código.

import arcpy
import os

srcPath = r"\\somePath\to\MapFiles"

mxd_lst = [os.path.join(srcPath, f) for f in os.listdir(srcPath) if f.lower().endswith('.mxd')]

mxds_with_graphicElms = []
for mxdPath in mxd_lst:
    mxd = arcpy.mapping.MapDocument(mxdPath)
    graphicElms = arcpy.mapping.ListLayoutElements(mxd, "GRAPHIC_ELEMENT", "*")
    if graphicElms:
        mxds_with_graphicElms.append(mxdPath)
        print(mxdPath + " has graphic elements")

print (str(mxds_with_graphicElms))

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X