arcpy修改mxd symbology.classBreakLabels

mxd使用分级渲染,

lyr.symbologyType =‘’
#coding=utf-8
import arcpy
mxd = arcpy.mapping.MapDocument(ur"xxx10.2.mxd")
copied_mxd = ur"E:xxxx0.2b.mxd"
# for lyr in arcpy.mapping.ListLayers(mxd):
#     print lyr.name,lyr.longName

print "Loading mxd file default dataframes..."
df = ""
try:
    frames = arcpy.mapping.ListDataFrames(mxd, "图层")
    if len(frames) == 0:
        frames = arcpy.mapping.ListDataFrames(mxd, "Layers") 
    df = frames[0]
except Exception, e:
    print "load mxd file default dataframes failed:", e

# lyr = arcpy.mapping.ListLayers(mxd, "到最近xxx距离", df)[0]
# print lyr.symbologyType

# for lyr in arcpy.mapping.ListLayers(mxd, "", df):
#     print lyr.symbologyType,lyr.symbology.valueField

breaks=[]
labels=[]
for lyr in arcpy.mapping.ListLayers(mxd, "", df):
    
    #     print lyr.symbology.classBreakValues
    if 0.0 == lyr.symbology.classBreakValues[0] and 0.0 == lyr.symbology.classBreakValues[1]:
        #print lyr.symbology.classBreakValues
        #print lyr
        breaks=lyr.symbology.classBreakValues
        breaks.remove(breaks[1])
        lyr.symbology.classBreakValues = breaks

    labels=lyr.symbology.classBreakLabels
    for i in range(len(labels)):
        if '.000000 - ' in labels[i] or '0.000000 - ' in labels[i]:
            #print labels[i]
            labels[i]=labels[i].replace('0.000000','0').replace('.000000','0')
    lyr.symbology.classBreakLabels=labels



mxd.saveACopy(copied_mxd)
del mxd

原文地址:https://www.cnblogs.com/yansc/p/14205432.html