Vous souhaitez plutôt convertir l'objet de résultat ArcPy à partir d'arcpy.GetCount_management () en entier?

18

J'essaie d'obtenir un nombre en comptant le nombre de points dans un fichier de formes. Et cela fonctionne, sauf que j'ai du mal à utiliser ce numéro ailleurs. Finalement, je vais utiliser ce nombre dans certaines mathématiques (calculatrice de terrain), mais pendant le débogage, je rencontre une erreur qui finira par me causer des problèmes plus tard.

Ce code:

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

donne cette erreur:

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

J'ai essayé de le convertir en int, ce qu'il n'aime pas non plus:

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

J'ai donc un objet «Résultat» et je dois le transformer en nombre.

Comment puis-je faire cela - ou est-ce que l'utilisation de la fonction ArcPy est inutile ou trop compliquée ici?

Erica
la source

Réponses:

45

Utilisez la méthode suivante sur l' objet Result et vous pourrez convertir en entier:

.getOutput (0) renverra la valeur à la première position d'index d'un outil.

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

ccn
la source
3

GetCount renvoie un objet Result et non un entier ou une chaîne.

Pour obtenir une chaîne, utilisez la méthode getOuput de l'objet résultat et tirez sa première partie. Pour voir d'autres parties, essayez de changer le 0 pour 1, 2, etc.

Si vous devez transformer cette chaîne en un entier, utilisez une fonction int ().

Pour en savoir plus sur l'objet Result et sa méthode getOutput, l' aide en ligne doit être consultée.

PolyGeo
la source