Quantcast
Channel: Question and Answer » arcpy
Viewing all articles
Browse latest Browse all 767

How to find features of certain name in multiple workspaces?

$
0
0

I have a similar issue to these threads:

How to list feature classes in multiple geodatabases in a folder?

How to list Feature Classes of Multiple geodatabase in Multiple Folder?

However, I want to search through multiple folders/directories for any feature (FC in an FD, FC in a GDB, shapefile) that has a name that matches a wildcard search (i.e. any of the above features that has a name like ABC*). I would then like to either copy the feature (if it is a feature class) or convert to a FC (if it is a SHP). Bonus if I could rename the copied feature to part of the name of it’s original parent directory (i.e. a project number).

For example:

123_Folder –> contains gdb with FC “ABCDE”

456_Folder –> contains folder XYZ with shp “ABCFGHI”

789_Folder –> contains folder LKJ with GDB “KJFSL” with FD “IKESHL” with FC “ABC”

I would love to end up with a gdb that contains:
123_ABC, 456_ABC, 789_ABC, etc.

I’m guessing I need to break this down into multiple search iterations?

I am only a beginner scripter, but learn quickly. Thanks for any help!

Edit: I now have this:

import arcpy, os
#Set the workspace
workspace = r"C:/temp"
#create list of files from directories and subdirectories
for root, dirs, files in arcpy.da.Walk(workspace, datatype="FeatureClass", type="Polygon"):
    for name in files:
        if name.startswith("ABC") or name.startswith("DEF"):
            path = os.path.abspath(os.path.join(root, name))
            print path

It works great! What I’d like to do now is convert each one to a centerpoint and append to a feature class I already have set up. However, I’d like to exclude any poly that was found in an Archive folder. That is, if the word “Archive” shows up in the path name I want to skip over it. How can I program that in Python?


Viewing all articles
Browse latest Browse all 767

Trending Articles