<?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 Batch merge files with same name in folders, subfolders etc. in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196031#M15014</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, I am trying to build a script that combs through all shapefiles within a folder, and all it's subdivisions, and merge them together into a new shapefile. I modified it slightly from another script (sorry can't rem the source to acknowledge...). However, it prompted me this error "ExecuteError: Failed to execute. Parameters are not valid. ERROR 000400: Duplicate inputs are not allowed Failed to execute (Merge)."&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The script is as stated below. Can anyone tell what is wrong with it?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;import arcpy, os&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;workspace = r'C:\Users\xxx\Desktop\boundary'&lt;/P&gt;&lt;P&gt;output_folder = r'C:\Users\xxx\Desktop\New folder'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dict = {}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for root, dirs, files in os.walk(workspace):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for dir in dirs:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.env.workspace = os.path.join(root,dir)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for fc in arcpy.ListFeatureClasses():&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not fc in Dict:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dict[fc] = []&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dict[fc].append(os.path.join(root,fc))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dict[fc].append(os.path.join(root,fc))&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for key in Dict:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output = os.path.join(output_folder,key[:-4]) + '_merge'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Merge_management(Dict[key], output)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print output + " created"&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 02 Nov 2015 13:48:40 GMT</pubDate>
    <dc:creator>SiyangTeo</dc:creator>
    <dc:date>2015-11-02T13:48:40Z</dc:date>
    <item>
      <title>Batch merge files with same name in folders, subfolders etc.</title>
      <link>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196031#M15014</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, I am trying to build a script that combs through all shapefiles within a folder, and all it's subdivisions, and merge them together into a new shapefile. I modified it slightly from another script (sorry can't rem the source to acknowledge...). However, it prompted me this error "ExecuteError: Failed to execute. Parameters are not valid. ERROR 000400: Duplicate inputs are not allowed Failed to execute (Merge)."&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The script is as stated below. Can anyone tell what is wrong with it?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;import arcpy, os&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;workspace = r'C:\Users\xxx\Desktop\boundary'&lt;/P&gt;&lt;P&gt;output_folder = r'C:\Users\xxx\Desktop\New folder'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dict = {}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for root, dirs, files in os.walk(workspace):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for dir in dirs:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.env.workspace = os.path.join(root,dir)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for fc in arcpy.ListFeatureClasses():&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not fc in Dict:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dict[fc] = []&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dict[fc].append(os.path.join(root,fc))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dict[fc].append(os.path.join(root,fc))&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for key in Dict:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output = os.path.join(output_folder,key[:-4]) + '_merge'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Merge_management(Dict[key], output)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print output + " created"&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2015 13:48:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196031#M15014</guid>
      <dc:creator>SiyangTeo</dc:creator>
      <dc:date>2015-11-02T13:48:40Z</dc:date>
    </item>
    <item>
      <title>Re: Batch merge files with same name in folders, subfolders etc.</title>
      <link>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196032#M15015</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;A few comments:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;The error message, in this case, is fairly specific and descriptive.&amp;nbsp; You are putting one or more datasets as inputs multiple times to the tool.&amp;nbsp; Since I don't know your folder and file structure, I suggest you add some print statements to find out the files you are adding so you can see where the duplicative inputs are coming from.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;Python is case sensitive and &lt;SPAN style="font-family: courier new,courier;"&gt;Dict != dict&lt;/SPAN&gt;, but &lt;SPAN style="font-family: courier new,courier;"&gt;Dict&lt;/SPAN&gt; is pretty close to &lt;SPAN style="font-family: courier new,courier;"&gt;dict&lt;/SPAN&gt;.&amp;nbsp; It is generally not a good idea to shadow built-in names, like &lt;SPAN style="font-family: courier new,courier;"&gt;dict&lt;/SPAN&gt;. Although in this case &lt;SPAN style="font-family: courier new,courier;"&gt;Dict&lt;/SPAN&gt; isn't shadowing the built-in &lt;SPAN style="font-family: courier new,courier;"&gt;dict&lt;/SPAN&gt;, I think it is close enough to avoid using a variable with that name.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;ArcGIS 10.1 SP1 introduced a Walk function in the ArcPy Data Access module &lt;A href="http://desktop.arcgis.com/en/desktop/latest/analyze/arcpy-data-access/walk.htm"&gt;(&lt;SPAN style="font-family: courier new,courier;"&gt;arcpy.da.Walk&lt;/SPAN&gt;&lt;/A&gt;).&amp;nbsp; The ArcPy Walk function is a geospatial aware version of &lt;SPAN style="font-family: courier new,courier;"&gt;os.walk&lt;/SPAN&gt;, and I encourage you to use it instead.&lt;/LI&gt;&lt;/UL&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2015 17:06:36 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196032#M15015</guid>
      <dc:creator>JoshuaBixby</dc:creator>
      <dc:date>2015-11-02T17:06:36Z</dc:date>
    </item>
    <item>
      <title>Re: Batch merge files with same name in folders, subfolders etc.</title>
      <link>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196033#M15016</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think you'll want a variation of this code found &lt;A href="https://arcpy.wordpress.com/2012/02/22/recursive-list-feature-classes/" rel="nofollow noopener noreferrer" target="_blank"&gt;here&lt;/A&gt;​. I've modified the code and it worked for my test folder which has multiple subfolders and shapefiles.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy, os
workspace = &lt;SPAN style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; background-color: #f6f6f6;"&gt;r'C:\Users\xxx\Desktop\boundary'&lt;/SPAN&gt;
output_folder = &lt;SPAN style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; background-color: #f6f6f6;"&gt; r'C:\Users\xxx\Desktop\New folder'&lt;/SPAN&gt;

Dict = {}
allFolders = [os.path.join(workspace, name) for name in os.listdir(workspace) if os.path.isdir(os.path.join(workspace, name))]

def recursive_list_fcs(workspace, wild_card=None, feature_type=None):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Returns a list of all feature classes in a tree.&amp;nbsp; Returned
&amp;nbsp;&amp;nbsp;&amp;nbsp; list can be limited by a wildcard, and feature type.
&amp;nbsp;&amp;nbsp;&amp;nbsp; """
&amp;nbsp;&amp;nbsp;&amp;nbsp; preexisting_wks = arcpy.env.workspace
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.env.workspace = workspace

&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for root, dirs, files in os.walk(workspace):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.env.workspace = root
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for fc in arcpy.ListFeatureClasses(wild_card, feature_type):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dict[workspace].append(arcpy.Describe(fc).catalogPath)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Pick up workspace types that don't have a folder
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #&amp;nbsp; structure (coverages, file geodatabase do)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; subFolders = set(arcpy.ListWorkspaces()) - \
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set(arcpy.ListWorkspaces('', 'FILEGDB')) -\
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set(arcpy.ListWorkspaces('', 'COVERAGE'))

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for subFolder in subFolders:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.env.workspace = os.path.join(root, workspace)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for fc in arcpy.ListFeatureClasses(wild_card,feature_type):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dict[workspace].append(arcpy.Describe(fc).catalogPath)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for dataset in arcpy.ListDatasets('', 'FEATURE'):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for fc in arcpy.ListFeatureClasses(wild_card,feature_type,dataset):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dict[workspace].append(arcpy.Describe(fc).catalogPath)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if len(Dict[workspace]) &amp;gt; 0:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Merge_management(Dict[workspace], os.path.join(output_folder,folderName+"_Merge.shp"))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print (folderName+"_Merge.shp" + " created")

&amp;nbsp;&amp;nbsp;&amp;nbsp; except Exception as err:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise err
&amp;nbsp;&amp;nbsp;&amp;nbsp; finally:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.env.workspace = preexisting_wks&amp;nbsp;&amp;nbsp;&amp;nbsp; 

for folder in allFolders:&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; folderName = os.path.basename(folder).split(".")[0]
&amp;nbsp;&amp;nbsp;&amp;nbsp; print folderName
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dict[folder]=[]
&amp;nbsp;&amp;nbsp;&amp;nbsp; recursive_list_fcs(folder,wild_card = None, feature_type = "Point")&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 09:47:42 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196033#M15016</guid>
      <dc:creator>LukeSturtevant</dc:creator>
      <dc:date>2021-12-11T09:47:42Z</dc:date>
    </item>
    <item>
      <title>Re: Batch merge files with same name in folders, subfolders etc.</title>
      <link>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196034#M15017</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; background-color: #f6f6f6;"&gt;I believe your most direct change may be to insert the 'dir' in between 'root' and 'fc' (which should result in the full path):&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="python" __jive_macro_name="code" class="_jivemacro_uid_14465009859583009 jive_macro_code jive_text_macro" data-renderedposition="71_8_912_16" jivemacro_uid="_14465009859583009"&gt;&lt;SPAN style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; background-color: #f6f6f6;"&gt;Dict[fc].append(os.path.join(root,dir,fc))&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2015 21:51:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196034#M15017</guid>
      <dc:creator>DarrenWiens2</dc:creator>
      <dc:date>2015-11-02T21:51:34Z</dc:date>
    </item>
    <item>
      <title>Re: Batch merge files with same name in folders, subfolders etc.</title>
      <link>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196035#M15018</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I definitely agree with Darren, but as Siyang has is set up right now he will produce a dictionary with keys for every feature class name found and the only item entry will be the same feature class path. This will essential attempt to merge a single feature class for each dictionary key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If Siyang's folder structure is set up with a workspace folder with multiple folders containing many shapefiles of the same type then he could modify his code like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy, os

workspace = r'C:\Users\xxx\Desktop\boundary'
output_folder = r'C:\Users\xxx\Desktop\New folder'

Dict = {}

for root, dirs, files in os.walk(workspace,topdown=True):
&amp;nbsp;&amp;nbsp;&amp;nbsp; for dir in dirs:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; env.workspace = os.path.join(root,dir)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dict[dir]=[]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for fc in arcpy.ListFeatureClasses():
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not fc in Dict[dir]:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dict[dir].append(&lt;SPAN style="color: #000000; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;os.path.join(root,dir,fc)&lt;/SPAN&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dict[dir].append(&lt;SPAN style="color: #000000; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;os.path.join(root,dir,fc)&lt;/SPAN&gt;)

for key in Dict:
&amp;nbsp;&amp;nbsp;&amp;nbsp; output = os.path.join(output_folder,key) + '_merge'
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Merge_management(Dict[key], output)
&amp;nbsp;&amp;nbsp;&amp;nbsp; print output + " created"&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The code I previously posted would do the same thing, but it also allows for feature type filtering and also for a folder structure with a top level workspace with multiple folders each containing multiple subfolders with their own feature classes in them. Hope this helps!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 09:47:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196035#M15018</guid>
      <dc:creator>LukeSturtevant</dc:creator>
      <dc:date>2021-12-11T09:47:44Z</dc:date>
    </item>
    <item>
      <title>Re: Batch merge files with same name in folders, subfolders etc.</title>
      <link>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196036#M15019</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The following seems to work for me, merging all similarly named shapefiles (e.g. 'points.shp merged with 'folder/points.shp' merged with 'folder/folder/points.shp'), which I think is the point (but I could be wrong), not only merging those within the same directory. The only real difference was changing 'root,fc' to 'root,dir,fc'. By recording the 'dir' part within the path, it is not just one entry in the list, it is all unique paths.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy, os

workspace = r'C:\junk\folder'

Dict = {}

for root, dirs, files in os.walk(workspace):
&amp;nbsp;&amp;nbsp;&amp;nbsp; for dir in dirs:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.env.workspace = os.path.join(root,dir)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for fc in arcpy.ListFeatureClasses():
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not fc in Dict:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dict[fc] = []
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dict[fc].append(os.path.join(root,dir,fc))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dict[fc].append(os.path.join(root,dir,fc))

for key in Dict:
&amp;nbsp;&amp;nbsp;&amp;nbsp; output = os.path.join(workspace,key[:-4]) + '_merge'
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Merge_management(Dict[key], output)&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 09:47:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196036#M15019</guid>
      <dc:creator>DarrenWiens2</dc:creator>
      <dc:date>2021-12-11T09:47:47Z</dc:date>
    </item>
    <item>
      <title>Re: Batch merge files with same name in folders, subfolders etc.</title>
      <link>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196037#M15020</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Oh Okay I must have misunderstood what Siyang was trying to get at. Darren your code definitely works if he is searching for shapefiles of the same name throughout the workspace.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Nov 2015 18:00:54 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196037#M15020</guid>
      <dc:creator>LukeSturtevant</dc:creator>
      <dc:date>2015-11-03T18:00:54Z</dc:date>
    </item>
    <item>
      <title>Re: Batch merge files with same name in folders, subfolders etc.</title>
      <link>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196038#M15021</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Wow, thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That explains why I have the "duplicated inputs" error message. There are many shapefiles of the same name but residing in different subfolders (or sub-subfolders). I totally missed out adding the root to the os.path.join to list the full path. Thanks for pointing my error out.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Works perfectly fine now. Bless you two, Luke and Darren. &lt;IMG src="https://community.esri.com/legacyfs/online/emoticons/happy.png" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Nov 2015 01:37:17 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196038#M15021</guid>
      <dc:creator>SiyangTeo</dc:creator>
      <dc:date>2015-11-04T01:37:17Z</dc:date>
    </item>
    <item>
      <title>Re: Batch merge files with same name in folders, subfolders etc.</title>
      <link>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196039#M15022</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the suggestions! &lt;/P&gt;&lt;P&gt;Especially about arcpy.da.Walk, that will be very helpful for my future scripts. &lt;IMG src="https://community.esri.com/legacyfs/online/emoticons/happy.png" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Nov 2015 01:42:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/batch-merge-files-with-same-name-in-folders/m-p/196039#M15022</guid>
      <dc:creator>SiyangTeo</dc:creator>
      <dc:date>2015-11-04T01:42:34Z</dc:date>
    </item>
  </channel>
</rss>

