Приведение объекта результата ArcPy из arcpy.GetCount_management () вместо целого числа?


18

Я пытаюсь получить число путем подсчета количества точек в шейп-файле. И это работает, за исключением того, что у меня тогда возникают проблемы с использованием этого числа где-то еще. В конце концов, я буду использовать этот счет в некоторой математике (полевом калькуляторе), но во время отладки я сталкиваюсь с ошибкой, которая в итоге вызовет у меня проблемы.

Этот код:

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'

Итак, у меня есть объект «Результат» и мне нужно превратить его в число.

Как я могу это сделать - или использование функции ArcPy излишне или слишком сложно здесь?

Ответы:


45

Используйте следующий метод для объекта Result, и вы сможете использовать его как int:

.getOutput (0) вернет значение в первой позиции индекса инструмента.

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


3

GetCount возвращает объект Result, а не целое число или строку.

Чтобы получить строку, вы используете метод getOuput объекта результата и извлекаете его первую часть. Чтобы увидеть другие части, попробуйте переключить 0 на 1, 2 и т. Д.

Если вам нужно превратить эту строку в целое число, используйте функцию int ().

Чтобы узнать больше об объекте Result и его методе getOutput, обратитесь к интерактивной справке .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.