Bunun yerine arcpy.GetCount_management () öğesinden ArcPy sonuç nesnesini tamsayı olarak mı kullanıyorsunuz?


18

Bir şekil dosyasında kaç puan olduğunu sayarak bir sayı almaya çalışıyorum. Ve bu işe yarar, ancak o sayıyı başka bir yerde kullanmakta zorlanıyorum. Sonunda, bazı matematik (alan hesap makinesi) bu sayıyı kullanacağım, ancak hata ayıklama sırasında daha sonra bana sorun neden olacak bir hatayla karşılaşıyorum.

Bu kod:

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

bu hatayı veriyor:

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

Ben de beğenmediği bir int olarak döküm denedim:

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

Bu yüzden bir 'Sonuç' nesnesim var ve onu bir sayıya dönüştürmem gerekiyor.

Bunu nasıl yapabilirim - ya da ArcPy işlevini burada gereksiz mi yoksa aşırı derecede karmaşık mı?

Yanıtlar:


45

Sonuç nesnesinde aşağıdaki yöntemi kullanın ve int olarak yayınlayabileceksiniz:

.getOutput (0) , bir aracın ilk dizin konumundaki değeri döndürür.

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


3

GetCount, bir tamsayı veya bir dize değil bir Sonuç nesnesi döndürür.

Bir dize almak için sonuç nesnesinin getOuput yöntemini kullanın ve ilk bölümünü çekin. Diğer parçaları görmek için 0'ı 1, 2 vb. İçin değiştirmeyi deneyin.

Bu dizeyi bir tamsayıya çevirmeniz gerekiyorsa int () işlevini kullanın.

Sonuç nesnesi ve getOutput yöntemi hakkında daha fazla bilgi edinmek için Çevrimiçi Yardım'a başvurulmalıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.