답변:
아래 코드는 shapefile에서 "testField"= 'A'정의 정의가 저장된 test_A.lyr이라는 레이어 파일을 만듭니다.
import arcpy
arcpy.MakeFeatureLayer_management(r"C:\temp\testLines.shp","test_lyr")
lyr = arcpy.mapping.Layer("test_lyr")
lyr.name = "test"
lyr.definitionQuery = '"testField" = ' + "'A'"
lyr.saveACopy(r"C:\temp\test_A.lyr")
del lyr
필요한 경우이 레이어 파일 또는 레이어 객체 (lyr)를 레이어 파일로 저장하기 전에 arcpy.mapping.AddLayer를 통해 맵에 추가 할 수도 있습니다.
MakeFeatureLayer의 where_clause가 정의 쿼리로 전달되는지 여부를 확인하기 위해 문서화되지 않은 동작이라고 생각하기 위해 아래에서 두 번째 테스트를 수행하여 @John의 답변을 확인했으며 그는 정확합니다.
arcpy.MakeFeatureLayer_management(r"C:\temp\testLines.shp","test_lyr2",'"testField" = ' + "'A'")
lyr2 = arcpy.mapping.Layer("test_lyr2")
lyr2.name = "test2"
lyr2.saveACopy(r"C:\temp\test_2.lyr")
del lyr2
MakeFeatureLayer 지오 프로세싱 도구를 사용하여 레이어를 Arcmap으로로드하는 경우 arcpy.mapping 클래스 layer-definitionQuery를 사용하여 기존 아크 맵 레이어에서 definitionQuery를 설정할 수 있습니다 .
arcpy.mapping.layer()
로 대체되었습니다arcpy.mp.LayerFile()