2013-07-17 3 views
-2

ArcMAP에서 'Select by Attribute'를 사용하여 스크립트를 작성하려고합니다. 원하는 것은 속성에 의한 선택 식에 값을 전달하는 for 루프를 만드는 것입니다. (X = 모양 파일의 폴리곤 수)Python에서 'for'루프를 사용하여 Select By 속성으로 변수 전달하기

for j in range(0,x,1): 
    arcpy.MakeFeatureLayer_management ("layer", "temp") 
    arcpy.SelectLayerByAttribute_management ("temp","NEW_SELECTION",""" "ID" > j""") 
    arcpy.CopyFeatures_management("temp","SlopeG5") 

내가 처리 할 수 ​​있어야 스크립트의 나머지 부분,하지만이 프로그램을 실행할 때, 내가 얻을 오류 코드 000358 : 나는의 라인을 따라 뭔가를 생각하고 있었다 표현이 유효하지 않다고 말했습니다. ArcMap은 select by 속성 내에서 'j'를 선호하지 않습니다.

전반적인 목표는 다각형을 분리하고, 위치별로 선택하여 교차하는 다각형을 찾고, 두 개의 영역을 찾고, 나누어서 두 번째로 덮는 주 다각형의 백분율을 얻는 것입니다.

은 희망이 설명은 내가는 ArcMap에 대해 아무것도 몰라 도움

+3

"''뜻? – Izkata

+0

@interjay 그것이 무엇인지는 알지만, 그 의도는 무엇입니까? – Izkata

답변

0

을 얻을 수있을만큼 명확하지만, 오히려 변수 j의 값보다는 비교 리터럴 문자열 "J"를 전달하는 . 당신은 아마 의미 : 그것은 다음과 같습니다

arcpy.SelectLayerByAttribute_management ("temp","NEW_SELECTION", "ID > %s" % j) 
0

은 당신이 할 의도입니다 - 문자열로 j의 값을 삽입 : "" "`"ID "> J"를 "무엇

for j in range(0,x,1): 
    arcpy.MakeFeatureLayer_management ("layer", "temp") 
    arcpy.SelectLayerByAttribute_management ("temp","NEW_SELECTION",'"ID" > %s' % j) 
    arcpy.CopyFeatures_management("temp","SlopeG5")