擅长:python、mysql、java
<p>好吧,我找到了一个好办法。我首先从MXD文件中获取所有层,然后将每个层的名称和源代码保存到字典中。然后,我将从GUI中选择我想要的层,并将其与字典中的层名称进行核对,然后我可以通过字典访问字段名:</p>
<pre><code>import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\MyMap.mxd") # loads my map
df = arcpy.mapping.ListDataFrames(mxd) # checks out the dataframes
layersources = {} # creates an empty dictionary
for d in df:
layers = arcpy.mapping.ListLayers(mxd, "", d) # lists all available layers
for lyr in layers:
layersources[lyr.name] = lyr.dataSource # fills keys and values of the layers (names and sources) into the dictionary
selecteditem = "the wanted layer" # this I choose from a GUI then, just defined it here as a variable for testing purposes
fields = arcpy.ListFields(layersources[selecteditem]) # creates a list with all the fields from that layer
for field in fields: # iterates through the list of fields
print field.name # and prints them one by one :-)
</code></pre>