python - How to create a list within a list of duplicate files? -


i have section of code creates list of raster files within directory:

import arcpy, os  workspace = r'c:\temp'  # list of files in subfolders rasters = [] dirpath, dirnames, filenames in arcpy.da.walk(workspace,                                                   topdown = true,                                                   datatype="rasterdataset"):     filename in filenames:         rasters.append(os.path.join(dirpath, filename)) 

which produces list of .tif files:

[r'c:\temp\block1\filea.tif', r'c:\temp\block1\fileb.tif', r'c:\temp\block2\filea.tif', r'c:\temp\block2\fileb.tif'] 

how can generate list of lists contain duplicate file names, following example?

[[r'c:\temp\block1\filea.tif', r'c:\temp\block2\filea.tif'], [r'c:\temp\block1\fileb.tif', r'c:\temp\block2\fileb.tif']] 

collect files in dictionary, keyed base name; collections.defaultdict() object makes easier:

from collections import defaultdict  rasters = defaultdict(list)  dirpath, dirnames, filenames in arcpy.da.walk(workspace,                                                   topdown = true,                                                   datatype="rasterdataset"):     filename in filenames:         rasters[filename].append(os.path.join(dirpath, filename))  rasters = rasters.values() 

this groups paths filename lists; rasters.values() builds desired list-of-lists.


Comments

Popular posts from this blog

java - WrongTypeOfReturnValue exception thrown when unit testing using mockito -

php - Magento - Deleted Base url key -

android - How to disable Button if EditText is empty ? -