arcpy.GetCount_management ()에서 ArcPy 결과 객체를 정수로 캐스팅?


18

shapefile에 몇 개의 점이 있는지 계산하여 숫자를 얻으려고합니다. 그리고 이것은 내가 다른 곳에서 그 숫자를 사용하는 데 어려움을 겪고 있다는 것을 제외하고는 효과가 있습니다. 결국, 일부 수학 (필드 계산기)에서 그 수를 사용하지만 디버깅하는 동안 나중에 문제가 발생하는 오류가 발생합니다.

이 코드는 :

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

이 오류가 발생합니다 :

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

나는 그것을 int로 캐스팅하려고 시도했지만 그것은 또한 좋아하지 않는다.

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

그래서 'Result'객체를 가지고 있으며 숫자로 바꿔야합니다.

어떻게 할 수 있습니까? 아니면 여기서 ArcPy 기능을 사용하지 않거나 지나치게 복잡합니까?

답변:


45

Result 객체 에서 다음 메소드를 사용하면 int로 캐스트 할 수 있습니다.

.getOutput (0) 은 도구의 첫 번째 인덱스 위치에서 값을 반환합니다.

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


3

GetCount는 정수 나 문자열이 아닌 Result 개체를 반환합니다.

문자열을 얻으려면 결과 객체의 getOuput 메소드를 사용하여 첫 번째 부분을 당깁니다. 다른 부품을 보려면 0을 1, 2 등으로 전환하십시오.

해당 문자열을 정수로 바꾸려면 int () 함수를 사용하십시오.

Result 오브젝트 및 getOutput 메소드에 대한 자세한 내용은 온라인 도움말 을 참조하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.