โค้ดด้านล่างจะสร้างจากไฟล์เลเยอร์ไฟล์เลเยอร์ชื่อ test_A.lyr ซึ่งมีคำจำกัดความของคำว่า "testField" = 'A' ที่บันทึกไว้
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
หากต้องการดูว่า Where_clause บน MakeFeatureLayer ได้รับการส่งผ่านเป็นแบบสอบถามแบบ จำกัด ซึ่งฉันคิดว่าเป็นพฤติกรรมที่ไม่มีเอกสารฉันได้ทำการทดสอบครั้งที่สองด้านล่างเพื่อตรวจสอบคำตอบของ @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
arcpy.mapping.layer()
ได้ถูกแทนที่ด้วยarcpy.mp.LayerFile()