Il cast dell'oggetto risultato ArcPy da arcpy.GetCount_management () come numero intero invece?


18

Sto cercando di ottenere un numero contando quanti punti ci sono in uno shapefile. E questo funziona, tranne che poi mi trovo in difficoltà usando quel numero da qualche altra parte. Alla fine, userò quel conteggio in alcuni calcoli (calcolatrice sul campo), ma durante il debug mi imbatto in un errore che finirà per causarmi problemi in seguito.

Questo codice:

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

dà questo errore:

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

Ho provato a lanciarlo come un int, che non piace ANCHE:

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

Quindi ho un oggetto "Risultato" e devo trasformarlo in un numero.

Come posso farlo o utilizzare la funzione ArcPy non è necessario o eccessivamente complicato qui?

Risposte:


45

Usa il seguente metodo sull'oggetto Result e sarai in grado di eseguire il cast come int:

.getOutput (0) restituirà il valore nella prima posizione di indice di uno strumento.

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


3

GetCount restituisce un oggetto Risultato e non un numero intero o una stringa.

Per ottenere una stringa si utilizza il metodo getOuput dell'oggetto risultato e si estrae la sua prima parte. Per vedere qualsiasi altra parte prova a cambiare lo 0 per 1, 2, ecc.

Se devi trasformare quella stringa in un numero intero, usa una funzione int ().

Per ulteriori informazioni sull'oggetto Result e sul relativo metodo getOutput, consultare la Guida in linea .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.