I am trying to get the database path of a feature class that may or may not be in a feature dataset. I am using the os.path.dirname
of the feature class. This will give me either the database path if the feature class is not in a feature dataset (great), but if the feature class is in a feature dataset, it will give me the path to the feature dataset.
This could be a file, personal or sde geodatabase. I was thinking of a split
using the '.sde' but that won't work if it is a different type of geodatabase.
A sample of the path could be:
In both these cases I would like to get C:\GISData\Data.gdb.
Thank you.
Check out this short blog posting which they use the following function:
def get_geodatabase_path(input_table):
'''Return the Geodatabase path from the input table or feature class.
:param input_table: path to the input table or feature class
'''
workspace = os.path.dirname(input_table)
if [any(ext) for ext in ('.gdb', '.mdb', '.sde') if ext in os.path.splitext(workspace)]:
return workspace
else:
return os.path.dirname(workspace)