<?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: Save all the layers in table of contents to layer files in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/save-all-the-layers-in-table-of-contents-to-layer/m-p/96969#M7497</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you that worked. I also got the following form ESRI Australia which worked perfectley&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;import arcpy&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import os&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;mxdpath = arcpy.GetParameterAsText(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;outdir = arcpy.GetParameterAsText(1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;mxd = arcpy.mapping.MapDocument(mxdpath)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;arcpy.env.workspace = outdir&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;i = 0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for lyr in arcpy.mapping.ListLayers(mxd):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; outname = lyr.name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if os.path.exists(outdir):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outname = outdir + "\\" + outname &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = 0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_i = outname + ".lyr"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print out_i&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while os.path.exists(out_i) and i &amp;lt; 10:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_i = outname + "_" + str(i) + ".lyr"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i += 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; outname = out_i&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.saveACopy(outname)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 20 Aug 2012 03:08:05 GMT</pubDate>
    <dc:creator>RaziMosadeghi</dc:creator>
    <dc:date>2012-08-20T03:08:05Z</dc:date>
    <item>
      <title>Save all the layers in table of contents to layer files</title>
      <link>https://community.esri.com/t5/python-questions/save-all-the-layers-in-table-of-contents-to-layer/m-p/96965#M7493</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi, I have this big mxd containing 400+ layers under different groups. I was wondering if there is any python scripting to save all the layers to the layer files.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Razi&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Aug 2012 04:26:28 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/save-all-the-layers-in-table-of-contents-to-layer/m-p/96965#M7493</guid>
      <dc:creator>RaziMosadeghi</dc:creator>
      <dc:date>2012-08-16T04:26:28Z</dc:date>
    </item>
    <item>
      <title>Re: Save all the layers in table of contents to layer files</title>
      <link>https://community.esri.com/t5/python-questions/save-all-the-layers-in-table-of-contents-to-layer/m-p/96966#M7494</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;This should work for you.. replace the stuff in red with the appropriate file paths. The script will find all the dataframes in your mxd and then save the layer files to the folder you specify.&lt;/SPAN&gt;&lt;BR /&gt;&lt;UL&gt; &lt;BR /&gt; &lt;LI&gt;Group layers are saved as such and named with the word 'Group' at the front so they are easily identified as such, but the individual layers inside a group are also saved - that may not be behavior you want so you may need to tweak that.&lt;/LI&gt; &lt;BR /&gt;&lt;/UL&gt;&lt;UL&gt; &lt;BR /&gt; &lt;LI&gt;The naming of the saved layers is drawn directly from how the layers are named in your table of contents; again, if that isn't what you want you'll need to sort out how to name them more appropriately.&lt;/LI&gt; &lt;BR /&gt;&lt;/UL&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy, arcpy.mapping
ws = r'YOUR FILE PATH HERE TO WHERE LAYERS GET SAVED'
mxd = r'FILE PATH TO YOUR MAP DOCUMENT HERE'
mapdoc = arcpy.mapping.MapDocument(mxd)
dframes = arcpy.mapping.ListDataFrames(mapdoc)
for dframe in dframes:
&amp;nbsp;&amp;nbsp;&amp;nbsp; lyrs = arcpy.mapping.ListLayers(mapdoc,'',dframe)
&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in lyrs:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.isGroupLayer:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_name = 'group_' + lyr.name
&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; l_name = lyr.name
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SaveToLayerFile_management(lyr,ws + '\\' + l_name + '.lyr')&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 16:01:00 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/save-all-the-layers-in-table-of-contents-to-layer/m-p/96966#M7494</guid>
      <dc:creator>ChristopherThompson</dc:creator>
      <dc:date>2021-12-12T16:01:00Z</dc:date>
    </item>
    <item>
      <title>Re: Save all the layers in table of contents to layer files</title>
      <link>https://community.esri.com/t5/python-questions/save-all-the-layers-in-table-of-contents-to-layer/m-p/96967#M7495</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you for the quick reply&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried the script but nothing happens! I have also tried the following script, which didn't work!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;import arcpy&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ws = arcpy.env.workspace(r"M:\SIS\ArcGIS Workspace\GIS_Project_lyrs\Dekho\lyrs\Test")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mxd = arcpy.mapping.MapDocument("CURRENT")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;dframes = arcpy.mapping.ListDataFrames(mxd)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; for dframe in dframes:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; lyrs = arcpy.mapping.ListLayers(mxd,'',dframe)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; for lyr in lyrs:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; if lyr.isGroupLayer:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_name = 'group_' + lyr.name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; else:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_name = lyr.name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; arcpy.SaveToLayerFile_management(lyr,ws + '\\' + l_name + '.lyr')&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The mxd only has one datafram and I certainly need grouped layers as well as individual layers.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Would appreciate your help.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Aug 2012 22:26:28 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/save-all-the-layers-in-table-of-contents-to-layer/m-p/96967#M7495</guid>
      <dc:creator>RaziMosadeghi</dc:creator>
      <dc:date>2012-08-16T22:26:28Z</dc:date>
    </item>
    <item>
      <title>Re: Save all the layers in table of contents to layer files</title>
      <link>https://community.esri.com/t5/python-questions/save-all-the-layers-in-table-of-contents-to-layer/m-p/96968#M7496</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;thats odd, because i tested that script against several mxds before i posted it and it worked like a charm.&amp;nbsp; How are you executing the script?&amp;nbsp; I noticed this line inside the code you just posted:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;mxd = arcpy.mapping.MapDocument("CURRENT")&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;the "CURRENT" keyword only works if you are running the script from within ArcMap I believe.&amp;nbsp; To run the code I gave you, open it with IDLE, replace the stuff in red, save it, then from the Run menu, select 'Run Module' and see if that helps.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, this line won't work I don't think:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;ws = arcpy.env.workspace(r"M:\SIS\ArcGIS Workspace\GIS_Project_lyrs\Dekho\lyrs\Test")&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;you can't set an object/variable like ws with that statement it has to be on a line of its own.. you can do:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;arcpy.env.workspace(r"M:\SIS\ArcGIS Workspace\GIS_Project_lyrs\Dekho\lyrs\Test")&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;or&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;ws = r"M:\SIS\ArcGIS Workspace\GIS_Project_lyrs\Dekho\lyrs\Test"
arcpy.env.workspace(ws)&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;So you might try fixing those things and see if that works better for you.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 06:05:21 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/save-all-the-layers-in-table-of-contents-to-layer/m-p/96968#M7496</guid>
      <dc:creator>ChristopherThompson</dc:creator>
      <dc:date>2021-12-11T06:05:21Z</dc:date>
    </item>
    <item>
      <title>Re: Save all the layers in table of contents to layer files</title>
      <link>https://community.esri.com/t5/python-questions/save-all-the-layers-in-table-of-contents-to-layer/m-p/96969#M7497</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you that worked. I also got the following form ESRI Australia which worked perfectley&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;import arcpy&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import os&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;mxdpath = arcpy.GetParameterAsText(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;outdir = arcpy.GetParameterAsText(1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;mxd = arcpy.mapping.MapDocument(mxdpath)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;arcpy.env.workspace = outdir&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;i = 0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for lyr in arcpy.mapping.ListLayers(mxd):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; outname = lyr.name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if os.path.exists(outdir):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outname = outdir + "\\" + outname &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = 0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_i = outname + ".lyr"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print out_i&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while os.path.exists(out_i) and i &amp;lt; 10:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_i = outname + "_" + str(i) + ".lyr"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i += 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; outname = out_i&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.saveACopy(outname)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Aug 2012 03:08:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/save-all-the-layers-in-table-of-contents-to-layer/m-p/96969#M7497</guid>
      <dc:creator>RaziMosadeghi</dc:creator>
      <dc:date>2012-08-20T03:08:05Z</dc:date>
    </item>
  </channel>
</rss>

