नीचे दिया गया कोड एक आकार-प्रकार से, 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
यदि आवश्यक हो, तो आप इस लेयर फ़ाइल, या लेयर ऑब्जेक्ट (लियर) को पहले से जोड़ सकते हैं, इसे लेयर फाइल के रूप में सहेजा जा रहा है, अपने मैप में 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
arcpy.mapping.layer()
के साथ प्रतिस्थापित किया गया हैarcpy.mp.LayerFile()