Em vez disso, converter o objeto de resultado ArcPy de arcpy.GetCount_management () como inteiro?

18

Estou tentando obter um número contando quantos pontos existem em um shapefile. E isso funciona, exceto que estou tendo problemas para usar esse número em outro lugar. Eventualmente, usarei essa contagem em algumas contas (calculadora de campo), mas, durante a depuração, encontro um erro que acabará me causando problemas mais tarde.

Este código:

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

dá este erro:

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

Eu tentei lançá-lo como um int, que também não gosta:

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

Então, eu tenho um objeto 'Resultado' e preciso transformá-lo em um número.

Como posso fazer isso - ou o uso da função ArcPy é desnecessário ou excessivamente complicado aqui?

Érica
fonte

Respostas:

45

Use o seguinte método no objeto Result e você poderá converter como int:

.getOutput (0) retornará o valor na primeira posição do índice de uma ferramenta.

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

ccn
fonte
3

GetCount retorna um objeto Result e não um número inteiro ou uma string.

Para obter uma string, use o método getOuput do objeto de resultado e puxe sua primeira parte. Para ver outras partes, tente mudar o 0 para 1, 2 etc.

Se você precisar transformar essa sequência em um número inteiro, use uma função int ().

Para saber mais sobre o objeto Result e seu método getOutput, a Ajuda on - line deve ser consultada.

PolyGeo
fonte