20 votos

¿Casting ArcPy resultado objeto de arcpy.GetCount_management() como entero en su lugar?

Utilizo ArcMap 10.1.

Intento obtener un número contando cuántos puntos hay en un shapefile. Y funciona, pero luego tengo problemas para utilizar ese número en otro sitio. Eventualmente, voy a utilizar ese conteo en algunas matemáticas (calculadora de campo), pero mientras depuro me estoy encontrando con un error que terminará causándome problemas más adelante.

Este código:

TotalPoints = arcpy.GetCount_management(Path_Pts)
arcpy.AddMessage(">>>> PROCESS: COUNT PATH POINTS {" + TotalPoints + "}")

da este error:

TypeError: cannot concatenate 'str' and 'Result' objects

He probado a lanzarlo como un int, que TAMBIÉN no le gusta:

TypeError: int() argument must be a string or a number, not 'Result'

Así que tengo un objeto 'Resultado' y necesito convertirlo en un número.

¿Cómo puedo hacerlo, o es innecesario o demasiado complicado utilizar la función ArcPy en este caso?

50voto

skamradt Puntos 13049

Utilice el siguiente método en el Resultado y podrás lanzarlo como int:

.getOutput(0) devolverá el valor en la primera posición de índice de una herramienta.

int(arcpy.GetCount_management(Path_Pts).getOutput(0))

3voto

UnkwnTech Puntos 21942

GetCount devuelve un objeto Result y no un entero o una cadena.

Para obtener una cadena se utiliza la función getOutput del objeto resultante y extraer su primera parte. Para ver cualquier otra parte prueba a cambiar el 0 por 1, 2, etc.

Si necesita convertir esa cadena en un número entero, utilice una función int().

Para saber más sobre el objeto Resultado y su getOutput método Ayuda en línea debe ser consultado.

-2voto

Charles Burns Puntos 3745

Sólo tiene que utilizar str(TotalPoints) en tu mensaje. En caso de que el recuento tenga que ser añadido con otro valor entero en el futuro, sólo tiene que utilizar int(str(TotalPoints))

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