<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Need Help with Code to List Layers and their Data Frames in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/need-help-with-code-to-list-layers-and-their-data/m-p/106035#M8168</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;First off:&amp;nbsp; when typing code in the forum window, wrap it in code tags&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The pound button (#) in the formatting buttons will insert the tags for you.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Whitespace is important with python, and without the code tags, leading white space is weeded out.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Next, you want a path name to your mxd, and the full mxd file name.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If this script is to run inside arcMap (in the python window, for example), &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;then you can just use the keyword "CURRENT" instead of a full path.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you have multiple data frames, you may want to cycle through them,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;getting the layers from each. Use ListDataFrames&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy
mxd = arcpy.mapping.MapDocument(r"c:\workDir\FILENAME.mxd")
dfList = arcpy.mapping.ListDataFrames(mxd)

for df in dfList:
&amp;nbsp;&amp;nbsp;&amp;nbsp; lyrList = arcpy.mapping.ListLayers(mxd, "", df):
&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Data Frame: ", df.name
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in lyrList:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.supports("DATASOURCE"):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; source = lyr.dataSource
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; source = "undefined"

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Layer: " + lyr.name + " Source: " + source&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 06:27:23 GMT</pubDate>
    <dc:creator>markdenil</dc:creator>
    <dc:date>2021-12-11T06:27:23Z</dc:date>
    <item>
      <title>Need Help with Code to List Layers and their Data Frames</title>
      <link>https://community.esri.com/t5/python-questions/need-help-with-code-to-list-layers-and-their-data/m-p/106034#M8167</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hey all!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am relatively new to the forums (and Python) so please let me know if I am asking a question that is already answered elsewhere.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Basically I am trying to edit a code given to me in order to list all the &lt;/SPAN&gt;&lt;STRONG&gt;layers&lt;/STRONG&gt;&lt;SPAN&gt; in my .mxd and correlate them to the &lt;/SPAN&gt;&lt;STRONG&gt;data frame&lt;/STRONG&gt;&lt;SPAN&gt; they are in.&amp;nbsp; Right now I have this code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;import arcpy
mxd = arcpy.mapping.MapDocument(r"FILENAME")
for lyr in arcpy.mapping.ListLayers(mxd):
&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.supports("DATASOURCE"):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Layer: " + lyr.name + "&amp;nbsp; Source: " + lyr.dataSource&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Which was given to me, I have tried a few different options in the past week on my spare time to see if I could get it working to no luck yet.&amp;nbsp; Is this code editable to the point of being able to also show the data frame name along with what information is already being shown?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any help/guide in the right direction will be more than appreciated. Thanks!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 May 2014 18:03:50 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/need-help-with-code-to-list-layers-and-their-data/m-p/106034#M8167</guid>
      <dc:creator>DevinDePonte</dc:creator>
      <dc:date>2014-05-19T18:03:50Z</dc:date>
    </item>
    <item>
      <title>Re: Need Help with Code to List Layers and their Data Frames</title>
      <link>https://community.esri.com/t5/python-questions/need-help-with-code-to-list-layers-and-their-data/m-p/106035#M8168</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;First off:&amp;nbsp; when typing code in the forum window, wrap it in code tags&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The pound button (#) in the formatting buttons will insert the tags for you.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Whitespace is important with python, and without the code tags, leading white space is weeded out.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Next, you want a path name to your mxd, and the full mxd file name.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If this script is to run inside arcMap (in the python window, for example), &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;then you can just use the keyword "CURRENT" instead of a full path.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you have multiple data frames, you may want to cycle through them,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;getting the layers from each. Use ListDataFrames&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy
mxd = arcpy.mapping.MapDocument(r"c:\workDir\FILENAME.mxd")
dfList = arcpy.mapping.ListDataFrames(mxd)

for df in dfList:
&amp;nbsp;&amp;nbsp;&amp;nbsp; lyrList = arcpy.mapping.ListLayers(mxd, "", df):
&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Data Frame: ", df.name
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in lyrList:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.supports("DATASOURCE"):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; source = lyr.dataSource
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; source = "undefined"

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Layer: " + lyr.name + " Source: " + source&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 06:27:23 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/need-help-with-code-to-list-layers-and-their-data/m-p/106035#M8168</guid>
      <dc:creator>markdenil</dc:creator>
      <dc:date>2021-12-11T06:27:23Z</dc:date>
    </item>
  </channel>
</rss>

