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?

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))


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.